January 16, 2008
Python 笔记:实现 UDP 服务器/客户端
今后可能会写几篇这样的 Python 初学者笔记,但是从我的出发点看来,并没有打算、也没有能力写成类似教程的文章,而仅仅是将自己学习到的东西整理、记录一下。
下面的代码实现一对 UDP 服务器/客户端。服务器:接收发送自客户端的包再返回给客户端;客户端:向服务器发送包并打印服务器的响应。
服务器:
# UDP Echo Server - udpechoserver.py
import socket, traceback
host = ''
port = 54321
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
s.bind((host, port))
while 1:
try:
message, address = s.recvfrom(8192)
print "Got data from", address
s.sendto(message, address)
except (KeyboardInterrupt, SystemExit):
raise
except:
traceback.print_exc()
客户端:
# UDP Client - udpclient.py
import socket, sys
host = sys.argv[1]
textport = sys.argv[2]
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
try:
port = int(textport)
except ValueError:
port = socket.getservbyname(textport, 'udp')
s.connect((host, port))
while 1:
print "Enter data to transmit:"
data = sys.stdin.readline().strip()
s.sendall(data)
print "Looking for replies; press Ctrl-C or Ctrl-Break to stop."
buf = s.recv(2048)
if not len(buf):
break
print "Server replies: ",
sys.stdout.write(buf)
print "\n"
漫步 at 09:34 Jan 17, 2008 ₪
python 好玩吗? 有时间我也学一学?
对了, sun 收购 Mysql了 , oracle 收购 bea 了, 哇哈.
漫步’s last blog post..Simple Tags 1.3
北极冰仔 at 09:45 Jan 17, 2008 ₪
太猛了。
mynameiszhang at 20:20 Jan 26, 2008 ₪
我也想学一下python ,想问问你如何学习,咱们邮件交流行吗?
北极冰仔 at 20:29 Jan 26, 2008 ₪
zhang » 我也只是初学,懂得非常浅,欢迎交流。^^