Python 利用SocketServer模块
实现网络客户端与服务器并发连接非阻塞通信
MyTCPServer.py
import SocketServer
from SocketServer import StreamRequestHandler
from time import ctime
host = '127.0.0.1'
port = 8001
addr = (host,port)
BUF_SIZE = 1024
class Servers(StreamRequestHandler):
def handle(self):
print 'connection from %s'%str(self.client_address)
#self.wfile.write('connection %s:%s at %s succeed!' % (host,port,ctime()))
while True:
try:
data = self.request.recv(1024)
if not data:
break
print "----\n%s\n[Recv]%s"%(str(self.client_address), data)
self.request.send(data)
except:
break
print "disconnect %s"%str(self.client_address)
print 'server is running....'
server = SocketServer.ThreadingTCPServer(addr,Servers)
server.serve_forever()
MyTCPClient.py
from socket import *
host = '127.0.0.1'
port = 8001
addr = (host,port)
BUF_SIZE = 1024
client = socket(AF_INET,SOCK_STREAM)
client.connect(addr)
while True:
data = raw_input()
if data.strip() == 'exit':
break
if not data:
continue
client.send('%s\r\n'%data)
print "send:%s"%data
dataRecv = client.recv(BUF_SIZE)
print "recv:%s"%dataRecv
client.close()