Python3---UDP服务器Studying
UDP服务器:
#! /usr/bin/env python from socket import * from time import ctime ''' 作用:UDP服务器伪代码 ss = socket() 创建服务器套接字 ss.bind() 绑定服务器套接字 inf_loop: 服务器无限循环 cs = ss.recvfrom()/ss.sendto() 关闭(接收/发送) ss.close() 关闭服务器套接字 ''' HOST = '' PORT = 21567 BUFSIZ = 1024 ADDR = (HOST,PORT) udpSerSock = socket(AF_INET,SOCK_DGRAM) udpSerSock.bind(ADDR) ''' recv()返回的是接收到的数据, recvfrom返回的是(数据,客户端地址),可以用来接收对端的地址信息,这个对于udp这种无连接的,可以很方便地进行回复。 ''' while True: print("waiting for message...") data,addr = udpSerSock.recvfrom(BUFSIZ) udpSerSock.sendto(ctime().encode(),addr) print("...received from and returned to:",addr) udpSerSock.close()
UDP客户端:
#!/usr/bin/env python from socket import * ''' 作用:UDP客户端 cs = socket() 创建客户端套接字 comm_loop: 通信循环 cs.sendto()/cs.recvfrom() 对话(发送/接收) cs.close() 关闭客户端套接字 ''' HOST = 'localhost' PORT = 21567 BUFSIZ = 1024 ADDR = (HOST,PORT) udpCliSock = socket(AF_INET,SOCK_DGRAM) while True: data = input('> ') data = data.encode() if not data: break udpCliSock.sendto(data,ADDR) data, ADDR = udpCliSock.recvfrom(BUFSIZ) if not data: break print(data) udpCliSock.close()