python 网络编程 udp示例(转)
2018年12月1日
没有评论
以下对于测试服务器的udp端口及是否协议畅通和可以使用,是很好的办法。
由于UDP是无连接的,与TCP的区别在服务器端表现为,无需监听函数listen()对客户端的连接进行监听; 在客户端的表现为客户端的socket无需与服务器建立连接就能够进行数据的发送与接收,即无需connect()函数。
服务器端代码,udpServer.py:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | from socket import * from time import ctime HOST = '' PORT = 20123 BUFSIZ = 128 ADDR = (HOST, PORT) #创建一个服务器端UDP套接字 udpServer = socket(AF_INET, SOCK_DGRAM) #绑定服务器套接字 udpServer.bind(ADDR) while True: print 'waiting for message...' #接收来自客户端的数据 data, addr = udpServer.recvfrom(BUFSIZ) #向客户端发送数据 udpServer.sendto('[%s] %s' % (ctime(), data), addr) print '...received from and returned to:', addr udpServer.close() |
客户端代码,udpClient.py:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | from socket import * HOST = 'localhost' PORT = 20123 BUFSIZ = 128 ADDR = (HOST, PORT) #创建客户端UDP套接字 udpClient = socket(AF_INET, SOCK_DGRAM) while True: data = raw_input('>') if not data: break #向服务器端发送数据 udpClient.sendto(data,ADDR) #接收来自服务器端的数据 data, ADDR = udpClient.recvfrom(BUFSIZ) print data if not data: break udpClient.close() |