首页 > 代码库 > 【卷二】网络三—UDP服务器与客户端

【卷二】网络三—UDP服务器与客户端

这是另一个类型的服务器/客户端,无连接的 UDP: (User Datagram Protocol) 用户数据报协议

参考: P58~P60

 

UDP 时间戳服务器

【时间戳 就是ctime()显示的内容】

技术分享
 1 # coding: utf-8 2  3 from socket import * 4 from time import ctime 5  6 # HOST: 主机, 变量为空表示可以使用任何可用的地址 7 # PORT: 端口, 有效端口号范围是0~65535(1024以下的预留给了系统) 8 # BUFSIZ: 缓冲区, 大小可选, 这里设置为1024B, 即 1KB 9 HOST = ""10 PORT = 2156711 BUFSIZ = 102412 13 ADDR = (HOST, PORT)14 udpSerSock = socket(AF_INET, SOCK_DGRAM)15 udpSerSock.bind(ADDR)16 17 # 由于UDP类型套接字的是不用连接的, 所以没有监听(ss.listen())18 # 和让客户端转接到一个新的、独立的套接字的"转化"过程(ss.accept())19  20 while True:21     print "Waiting for message..."22     data, addr = udpSerSock.recvfrom(BUFSIZ)23     udpSerSock.sendto("[%s] %s" % (ctime(), data), addr)24     print "...received from and returned to:", addr25 26 udpSerSock.close()
Server

UDP 客户端

技术分享
 1 # coding: utf-8 2  3 from socket import * 4  5 # HOST:主机名, PORT:端口, 要和服务器的一样, 不然无法建立联系 6 # PORT:端口, 同样可取0~65535(1024以下的预留给了系统) 7  8 HOST = "localhost" 9 PORT = 21567以下的10 BUFSIZ = 102411 ADDR = (HOST, PORT)12 13 udpCliSock = socket(AF_INET, SOCK_DGRAM)14 # 由于UDP套接字:(User Datagram Protocol)是不需要建立连接的, 所以15 # 也就没有(cs.connet())的过程16 17 while True:18     data = http://www.mamicode.com/raw_input("> ")19     if not data:20         break21     # 记得发送地址呀,不然服务器去哪找你呀,亲22     udpCliSock.sendto(data, ADDR)23     data, ADDR = udpCliSock.recvfrom(BUFSIZ)24     print data25 26 udpCliSock.close()
Client-side

 

【卷二】网络三—UDP服务器与客户端