伪代码
#服务端 #创建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 #客户端1 from 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')) #客户端2 from 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