1.udp例子1
udpserver.py
# udp的server,不需要进行监听也不需要建立连接 # 在启动服务之后只能被动的等待客户端发送消息过来 # 客户端发送消息的同时还会自带地址信息 # server消息回复的时候,不仅需要发送消息,还需要带上对方的地址import socketsk = socket.socket(type=socket.SOCK_DGRAM) # 创建udp的socketsk.bind(('127.0.0.1', 8080)) # 绑定ip与端口info = ''while True: msg, addr = sk.recvfrom(1024) # 阻塞接收数据,得到数据内容与目标的ip地址 print(msg.decode('utf-8')) info = input('发送到client的数据内容:') sk.sendto(info.encode('utf-8'), addr) # 消息内容,并且指定目标IP端口发送sk.close()
udpclient1.py
import socketsk = socket.socket(type=socket.SOCK_DGRAM)ip_port = ('127.0.0.1', 8080)info = ''while True: info = input('发送到udp服务端的内容:') sk.sendto(info.encode('utf-8'), ip_port) # 消息内容,并且指定目标ip和端口发送数据,ip和端口是为元组的参数 msg, addr = sk.recvfrom(1024) # 阻塞接收数据,得到目标发送的信息和目标的ip端口 print(msg.decode('utf-8'))sk.close()
ucpclient2.py
import socketsk = socket.socket(type=socket.SOCK_DGRAM)ip_port = ('127.0.0.1', 8080)info = ''while True: info = input('发送到udp服务端的内容:') sk.sendto(info.encode('utf-8'), ip_port) # 消息内容,并且指定目标ip和端口发送数据,ip和端口是为元组的参数 msg, addr = sk.recvfrom(1024) # 阻塞接收数据,得到目标发送的信息和目标的ip端口 print(msg.decode('utf-8'))sk.close()
2.简单udp时间服务器例子
udpserver.py
# udp server端提供服务 # 接收信息 时间格式 # 将server端的时间转换成接收到的时间格式的格式,发送给udp客户端import socketimport timesk = socket.socket(type=socket.SOCK_DGRAM)sk.bind(('127.0.0.1', 8080))msg = ''addr = ()while True: msg, addr = sk.recvfrom(1024) if msg.decode('utf-8') == 'bye': break sk.sendto(time.strftime(msg.decode('utf-8')).encode('utf-8'), addr)sk.close()
udpclient.py
import socketsk = socket.socket(type=socket.SOCK_DGRAM)ip_port = ('127.0.0.1', 8080)sk.sendto(b'%Y-%m-%d %H:%M:%S', ip_port)msg, addr = sk.recvfrom(1024)print(msg.decode('utf-8'))