python: SocketServer的tcp和udp网络编程示例
python: SocketServer的tcp和udp网络编程示例
使用SocketServer模块(在python3中是socketserver)编写的tcp网络程序示例:
#!/usr/bin/env python
#server
from SocketServer import TCPServer as TCP, StreamRequestHandler as SRH
class MyRequestHandler(SRH):
def handle(self):
print I am server and recved: %s from %s % (self.rfile.readline().strip(), self.client_address)
self.wfile.write(I am server)
tcpServ = TCP((HOST, PORT), MyRequestHandler)
tcpServ.serve_forever()
################################################
#!/usr/bin/env python
#client
from socket import *
while True:
tcpCliSock = socket(AF_INET, SOCK_STREAM)
tcpCliSock.connect((HOST,PORT))
tcpCliSock.send(I am client )
data = tcpCliSock.recv(BUFSIZE)
if not data:
break
print I am client and recved: , data
tcpCliSock.close()
#################################################################
使用SocketServer模块编程的udp网络程序示例:
#!/usr/bin/env python
#serverfrom SocketServer import DatagramRequestHandler as DRH, UDPServer as UDP
class MyRequestHandler(DRH):
def handle(self):
print I am server and recved: %s from %s % (self.rfile.readline(), self.client_address)
self.wfile.write(I am server)
ss = UDP(('localhost', 6543), MyRequestHandler)
ss.serve_forever()
##############################################################
#!/usr/bin/env python
#clientwww.Bkjia.com
from socket import *
while True:
cs = socket(AF_INET, SOCK_DGRAM)
cs.sendto(I am client, (HOST, PORT))
data, saddr = cs.recvfrom(BUFSIZE)
if not data:
break
print 'I am client and recved: %s from %s' % (data, saddr)
cs.close()
评论关闭