Python Socketserver模块多线程
1.服务端
1 import socketserver 2 class MyServer(socketserver.BaseRequestHandler): 3 def handle(self): 4 print('服务端启动') 5 while True: 6 conn=self.request 7 print(self.client_address) 8 while True: 9 data = conn.recv(1024) 10 print('%s' % (str(data, 'utf8'))) 11 inp = input('>>>') 12 conn.send(bytes(inp, 'utf8')) 13 conn.close() 14 if __name__=='__main__': 15 server=socketserver.ThreadingTCPServer(('127.0.0.1',8080),MyServer) 16 server.serve_forever()
socketserver模块用来做多并发
解析:
1.MyServer类需要继承自socketserver.BaseRequestHandler类,重写父类方法handle故此方法名称固定不可更改
2.使用socketserver.ThreadingTCPServer类来实例化多并发服务端对象,参数为地址端口,和类
3.使用生成额对象启动服务server.serve_forever()
4.handle方法中使用对象的request属性返回与客户端的连接对象
2.客户端
1 #__author: Lobin 2 #__date: 2018/1/21 3 import socket 4 sk=socket.socket() 5 address=('127.0.0.1',8080) 6 sk.connect(address) 7 while True: 8 inp=input('>>>') 9 if inp=='exit': 10 break 11 sk.send(bytes(inp,'utf8')) 12 data=sk.recv(1024) 13 print('%s'%(str(data,'utf8')))
客户端没做改动
浙公网安备 33010602011771号