码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2016-08-27 15:35:50      阅读:195      评论:0      收藏:0      [点我收藏+]

标签:

这是另一个类型的服务器/客户端,无连接的 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 = 21567
11 BUFSIZ = 1024
12 
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:", addr
25 
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 = 1024
11 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 = raw_input("> ")
19     if not data:
20         break
21     # 记得发送地址呀,不然服务器去哪找你呀,亲
22     udpCliSock.sendto(data, ADDR)
23     data, ADDR = udpCliSock.recvfrom(BUFSIZ)
24     print data
25 
26 udpCliSock.close()
Client-side

 

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

标签:

原文地址:http://www.cnblogs.com/Ruby517/p/5812998.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!