伪代码
#服务端#创建UDP服务器ss = socket() #创建一个服务器套接字ss.bind() #绑定服务器套接字inf_loop: #服务器无限循环 cs = ss.recvfrom()/ss.sendto() #对话(接收与发送)ss.close() #关闭服务器套接字#客户端#创建一个UDP服务器cs = socket() #创建客户端套接字comm_loop: #通讯循环 cs.sendto()/cs.recvfrom() #对话(发送/接收)cs.close() #关闭客户端套接字
标准实例:
#服务端from socket import *server = socket(AF_INET,SOCK_DGRAM)server.bind(('127.0.0.1',9100))while True: conn,addr = server.recvfrom(1024) print("访问来自%s,端口号是:%s" % (addr[0],addr[1])) server.sendto(conn.upper(),addr) #返回消息的时候,必须指定端口号和ip#客户端1from socket import *client = socket(AF_INET,SOCK_DGRAM)while True: data = input(">>>") #发送空格也行,不会报错,一次发送,也不会占用资源 client.sendto(data.encode("utf-8"),('127.0.0.1',9100)) conn,addr = client.recvfrom(1024) print(conn.decode('utf-8'))#客户端2from socket import *client = socket(AF_INET,SOCK_DGRAM)while True: data = input(">>>") client.sendto(data.encode("utf-8"),('127.0.0.1',9100)) conn,addr = client.recvfrom(1024) print(conn.decode('utf-8'))
执行结果:
访问来自127.0.0.1,端口号是:60715访问来自127.0.0.1,端口号是:60716