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')))

客户端没做改动

 

posted on 2018-01-21 15:29  可爱的春哥  阅读(182)  评论(0)    收藏  举报

导航