并发实例

并发服务端:

 1 import pickle
 2 import hashlib
 3 import socketserver
 4 class Myserver(socketserver.BaseRequestHandler):
 5     def handle(self):
 6 
 7         while 1:
 8             content_long=self.request.recv(4)
 9             pickle_content=self.request.recv(1024)
10             pickle_loads_content=pickle.loads(pickle_content)
11             # {'work': 'as', 'file': 'a.txt', 'long': 17}
12             # print(pickle_loads_content)
13             self.request.send(b'ok')
14             sended=0
15             s=b''
16             total_long=pickle_loads_content['long']
17             md5=hashlib.md5()
18             i=0
19             while sended<int(pickle_loads_content['long']):
20                 i+=1
21                 # print(i)
22                 data=self.request.recv(1024)
23                 md5.update(data)
24                 s+=data
25                 sended+=len(data)+1
26                 # print(sended)
27             self.request.send(md5.hexdigest().encode('utf-8'))
28             break
29 server=socketserver.ThreadingTCPServer(('192.168.13.137', 8027),Myserver)
30 # 创建套接字对象
31 # bind
32 # listen
33 server.serve_forever()

并发客户端

 1 import pickle
 2 import hashlib
 3 import socketserver
 4 class Myserver(socketserver.BaseRequestHandler):
 5     def handle(self):
 6 
 7         while 1:
 8             content_long=self.request.recv(4)
 9             pickle_content=self.request.recv(1024)
10             pickle_loads_content=pickle.loads(pickle_content)
11             # {'work': 'as', 'file': 'a.txt', 'long': 17}
12             # print(pickle_loads_content)
13             self.request.send(b'ok')
14             sended=0
15             s=b''
16             total_long=pickle_loads_content['long']
17             md5=hashlib.md5()
18             i=0
19             while sended<int(pickle_loads_content['long']):
20                 i+=1
21                 # print(i)
22                 data=self.request.recv(1024)
23                 md5.update(data)
24                 s+=data
25                 sended+=len(data)+1
26                 # print(sended)
27             self.request.send(md5.hexdigest().encode('utf-8'))
28             break
29 server=socketserver.ThreadingTCPServer(('192.168.13.137', 8027),Myserver)
30 # 创建套接字对象
31 # bind
32 # listen
33 server.serve_forever()
原文地址:https://www.cnblogs.com/shanghongyun/p/9599201.html