zoukankan      html  css  js  c++  java
  • 并发实例

    并发服务端:

     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()
  • 相关阅读:
    geoserver发布mysql表数据
    geoserver1
    geoserver
    快速搭建arcgis以及cesium环境
    openlayers和cesium实现地图二三维切换
    记Mysql类型引起的BUG
    OpenLayers 图层(Layers) 详解
    基于TrueLicense实现产品License验证功能
    第七章
    第六周进度报告
  • 原文地址:https://www.cnblogs.com/shanghongyun/p/9599201.html
Copyright © 2011-2022 走看看