Python—网络通信编程之udp通信编程
服务端代码
import socket # 1.创建实例,即数据报套接字
server = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # 2.绑定地址,进行监听
server.bind(("127.0.0.1", 3120)) # 3.收发消息
while True:
# data = server.recv(1024) # 接收数据,返回的没有addr
data, addr = server.recvfrom(1024) # 接收数据,返回的有addr
print("recv from client:%s,content is:%s" % (addr, data.decode()))
server.sendto(("接受到消息:[{0}]".format(data.decode())).encode(), addr) # 4.关闭套接字
server.close()
客户端代码
import socket # 1.创建数据报套接字
client = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # 2.要连接的服务端地址
ADDR = ("127.0.0.1", 3120) # 3.收发信息
while True:
msg = input("请输入要发送的消息:")
if not msg or msg == "exit":
break
client.sendto(msg.encode(), ADDR)
data, addr = client.recvfrom(1024)
print("recv from server:%s,content is:%s" % (addr, data.decode())) # 4.关闭套接字
client.close()
知识点1:udp通信可以多个客户端的连接。tcp通信不可以多个客户端的连接。
知识点2:udp通信之前不需要先与服务端建立连接。tcp通信之前需要三次握手先与服务端建立连接之后才能通信。
Python—网络通信编程之udp通信编程的更多相关文章
- Python—网络通信编程之tcp通信编程
服务端代码 import socket # 1.创建流式套接字实例 # server = socket.socket() server = socket.socket(socket.AF_INET, ...
- java 网络编程之UDP通信和简单的群聊程序
*/ .hljs { display: block; overflow-x: auto; padding: 0.5em; color: #333; background: #f8f8f8; } .hl ...
- Python—网络通信编程之tcp非阻塞通信(socketserver)
服务端代码 import socketserver # 定义一个类 class MyServer(socketserver.BaseRequestHandler): # 如果handle方法出现报错, ...
- python网络编程之UDP方式传输数据
UDP --- 用户数据报协议(User Datagram Protocol),是一个无连接的简单的面向数据报的运输层协议. UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但是并不能 ...
- python网络编程之TCP通信实例
一. server.py import socket host="localhost" port= s=socket.socket(socket.AF_INET,socket.SO ...
- 网络编程之UDP编程
网络编程之UDP编程 UDP协议是一种不可靠的网络协议,它在通信的2端各建立一个Socket,但是这个Socket之间并没有虚拟链路,这2个Socket只是发送和接受数据的对象,Java提供了Data ...
- python并发编程之Queue线程、进程、协程通信(五)
单线程.多线程之间.进程之间.协程之间很多时候需要协同完成工作,这个时候它们需要进行通讯.或者说为了解耦,普遍采用Queue,生产消费模式. 系列文章 python并发编程之threading线程(一 ...
- [深入浅出WP8.1(Runtime)]Socket编程之UDP协议
13.3 Socket编程之UDP协议 UDP协议和TCP协议都是Socket编程的协议,但是与TCP协议不同,UDP协议并不提供超时重传,出错重传等功能,也就是说其是不可靠的协议.UDP适用于一次只 ...
- python并发编程之gevent协程(四)
协程的含义就不再提,在py2和py3的早期版本中,python协程的主流实现方法是使用gevent模块.由于协程对于操作系统是无感知的,所以其切换需要程序员自己去完成. 系列文章 python并发编程 ...
随机推荐
- redis是单进程数据库,多用户排队对统一数据进行访问,不存在并发访问生产的线程安全问题
redis是单进程数据库,多用户排队对统一数据进行访问,不存在并发访问生产的线程安全问题. oracle是多进程数据库,存在并发访问的问题,必须事务加锁等方式进行处理.
- 【代码学习】PYTHON 函数
一.定义函数 def 函数名(): 代码 二.函数调用 #定义函数 def printme(str): print str return #调用函数 printme("SQYY1" ...
- js 子窗口调用父框框方法
父窗口 子窗口
- 关于MQTT连接的属性
连接相关的属性. 这些属性是MQTT的连接报文中连接标志字, 包含一些用于指定 MQTT 连接行为的参数. 1.清理会话(Clean Session) 客户端和服务端可以保存会话状态,以支持跨网络连接 ...
- ES查询不重复的数据
GET ana-apk/_search #查询不重复的mac地址{ "size": 10, "aggs": { "MAC": { ...
- linux-命令行快捷方式使用
CTRL+P 命令向上翻滚 CTRL+N 命令向下翻滚 CTRL+U 命令行中删除光标前面的所有字符 CTRL+D 命令行中删除光标后面的一个字符 CTRL+H 命令行中删除光标前面的一个字符 CT ...
- Tensorflow机器学习入门——AttributeError: module 'scipy.misc' has no attribute 'toimage'
这个bug的解决办法: import cv2 # scipy.misc.toimage(image_array).save('cifar10_data/raw/%d.jpg' % i) cv2.imw ...
- laravel API
/** * [api] * @author Foreach * @param string $method [请求方式] * @param string $url [地址] * @param arra ...
- SpringBoot与Jpa入门
一.JPA简介 目前JPA主要实现由hibernate和openJPA等. Spring Data JPA 是Spring Data 的一个子项目,它通过提供基于JPA的Repository极大了减少 ...
- c# 分页 PaginatedList<TResult>
using System; using System.Collections.Generic; using System.Linq; namespace Microestc.PaginatedList ...