pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

<legend id='CfwrA'><style id='CfwrA'><dir id='CfwrA'><q id='CfwrA'></q></dir></style></legend>

  • <tfoot id='CfwrA'></tfoot>
      <bdo id='CfwrA'></bdo><ul id='CfwrA'></ul>
    1. <small id='CfwrA'></small><noframes id='CfwrA'>

    2. <i id='CfwrA'><tr id='CfwrA'><dt id='CfwrA'><q id='CfwrA'><span id='CfwrA'><b id='CfwrA'><form id='CfwrA'><ins id='CfwrA'></ins><ul id='CfwrA'></ul><sub id='CfwrA'></sub></form><legend id='CfwrA'></legend><bdo id='CfwrA'><pre id='CfwrA'><center id='CfwrA'></center></pre></bdo></b><th id='CfwrA'></th></span></q></dt></tr></i><div class="nlrppnx" id='CfwrA'><tfoot id='CfwrA'></tfoot><dl id='CfwrA'><fieldset id='CfwrA'></fieldset></dl></div>

        多處理的 Python ssl 問題

        Python ssl problem with multiprocessing(多處理的 Python ssl 問題)

          • <legend id='ga5WL'><style id='ga5WL'><dir id='ga5WL'><q id='ga5WL'></q></dir></style></legend>
            1. <tfoot id='ga5WL'></tfoot>

                • <bdo id='ga5WL'></bdo><ul id='ga5WL'></ul>
                    <tbody id='ga5WL'></tbody>
                • <i id='ga5WL'><tr id='ga5WL'><dt id='ga5WL'><q id='ga5WL'><span id='ga5WL'><b id='ga5WL'><form id='ga5WL'><ins id='ga5WL'></ins><ul id='ga5WL'></ul><sub id='ga5WL'></sub></form><legend id='ga5WL'></legend><bdo id='ga5WL'><pre id='ga5WL'><center id='ga5WL'></center></pre></bdo></b><th id='ga5WL'></th></span></q></dt></tr></i><div class="ffrxn5j" id='ga5WL'><tfoot id='ga5WL'></tfoot><dl id='ga5WL'><fieldset id='ga5WL'></fieldset></dl></div>
                • <small id='ga5WL'></small><noframes id='ga5WL'>

                  本文介紹了多處理的 Python ssl 問題的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

                  問題描述

                  限時送ChatGPT賬號..

                  我想從多個客戶端子進程通過 TLS TCP 套接字將數據從客戶端發送到服務器,因此我與所有子進程共享同一個 ssl 套接字.與一個子進程通信,但如果我使用多個子進程,TLS 服務器會崩潰并顯示 ssl.SSLError (SSL3_GET_RECORD:decryption failed or bad record mac).

                  I want to send data from a client to the server in a TLS TCP socket from multiple client subprocesses so I share the same ssl socket with all subprocesses. Communication works with one subprocess, but if I use more than one subprocesses, the TLS server crashes with an ssl.SSLError (SSL3_GET_RECORD:decryption failed or bad record mac).

                  更具體:不依賴于哪個進程首先調用SSLSocket.write()方法,但是從這個時候開始,只有這個進程可以調用它.如果另一個進程調用write(),服務器會產生上述異常.

                  More specific: It does not depend which process first calls the SSLSocket.write() method, but this process is the only one from this time on which can call it. If another process calls write(), the server will result in the exception described above.

                  我使用了這個基本代碼:

                  I used this basic code:

                  tlsserver.py

                  import socket, ssl
                  
                  def deal_with_client(connstream):
                      data = connstream.read()
                      while data:
                          print data
                          data = connstream.read()
                      connstream.close()
                  
                  bindsocket = socket.socket()
                  bindsocket.bind(('127.0.0.1', 9998))
                  bindsocket.listen(5)
                  
                  while True:
                      newsocket, fromaddr = bindsocket.accept()
                      connstream = ssl.wrap_socket(newsocket,
                                                  server_side=True,
                                                  certfile="srv.crt",
                                                  keyfile="srv.key",
                                                  ssl_version=ssl.PROTOCOL_TLSv1)
                      deal_with_client(connstream)
                  

                  tlsclient.py

                  import socket, ssl
                  import multiprocessing
                  
                  class SubProc:
                      def __init__(self, sock):
                          self.sock = sock
                  
                      def do(self):
                          self.sock.write("Test")
                  
                  s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
                  
                  ssl_sock = ssl.wrap_socket(s)
                  ssl_sock.connect(('127.0.0.1', 9998))
                  
                  print "Connected to", repr(ssl_sock.getpeername())
                  
                  for x in (1,2):
                      subproc = SubProc(ssl_sock)
                      proc = multiprocessing.Process(target=subproc.do)
                  

                  這是回溯:

                  Traceback (most recent call last):
                    File "tlsserver.py", line 21, in <module>
                      deal_with_client(connstream)
                    File "tlsserver.py", line 7, in deal_with_client
                      data = connstream.read()
                    File "/usr/lib64/python2.6/ssl.py", line 136, in read
                      return self._sslobj.read(len)
                  ssl.SSLError: [Errno 1] _ssl.c:1325: error:1408F119:SSL routines:SSL3_GET_RECORD:decryption failed or bad record mac
                  

                  推薦答案

                  問題是您為兩個進程重復使用相同的連接.SSL 加密數據的方式使這失敗了——兩個進程必須就共享 SSL 連接的狀態相互通信.即使你確實讓它工作了,或者如果你沒有使用 SSL,到達服務器的數據也會一團糟;您將無法真正區分哪些字節來自哪個進程.

                  The problem is that you're re-using the same connection for both processes. The way SSL encrypts data makes this fail -- the two processes would have to communicate with each other about the state of the shared SSL connection. Even if you do make it work, or if you didn't use SSL, the data would arrive at the server all jumbled up; you would have no real way of distinguishing which bytes came from which process.

                  您需要做的是通過在 subproc.do 中建立連接,為每個進程提供自己的 SSL 連接.或者,根本不讓子進程與服務器通信,而是與主進程通信,并讓主進程通過 SSL 連接進行中繼.

                  What you need to do is give each process its own SSL connection, by making the connection in subproc.do. Alternatively, don't have the subprocesses communicate with the server at all, but rather communicate with the main process, and have the main process relay it over the SSL connection.

                  這篇關于多處理的 Python ssl 問題的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

                  【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

                  相關文檔推薦

                  What exactly is Python multiprocessing Module#39;s .join() Method Doing?(Python 多處理模塊的 .join() 方法到底在做什么?)
                  Passing multiple parameters to pool.map() function in Python(在 Python 中將多個參數傳遞給 pool.map() 函數)
                  multiprocessing.pool.MaybeEncodingError: #39;TypeError(quot;cannot serialize #39;_io.BufferedReader#39; objectquot;,)#39;(multiprocessing.pool.MaybeEncodingError: TypeError(cannot serialize _io.BufferedReader object,)) - IT屋-程序員軟件開
                  Python Multiprocess Pool. How to exit the script when one of the worker process determines no more work needs to be done?(Python 多進程池.當其中一個工作進程確定不再需要完成工作時,如何退出腳本?) - IT屋-程序員
                  How do you pass a Queue reference to a function managed by pool.map_async()?(如何將隊列引用傳遞給 pool.map_async() 管理的函數?)
                  yet another confusion with multiprocessing error, #39;module#39; object has no attribute #39;f#39;(與多處理錯誤的另一個混淆,“模塊對象沒有屬性“f)
                    <tbody id='zgWyI'></tbody>
                    <legend id='zgWyI'><style id='zgWyI'><dir id='zgWyI'><q id='zgWyI'></q></dir></style></legend>

                    <tfoot id='zgWyI'></tfoot>
                      <bdo id='zgWyI'></bdo><ul id='zgWyI'></ul>
                        <i id='zgWyI'><tr id='zgWyI'><dt id='zgWyI'><q id='zgWyI'><span id='zgWyI'><b id='zgWyI'><form id='zgWyI'><ins id='zgWyI'></ins><ul id='zgWyI'></ul><sub id='zgWyI'></sub></form><legend id='zgWyI'></legend><bdo id='zgWyI'><pre id='zgWyI'><center id='zgWyI'></center></pre></bdo></b><th id='zgWyI'></th></span></q></dt></tr></i><div class="fjpnxpv" id='zgWyI'><tfoot id='zgWyI'></tfoot><dl id='zgWyI'><fieldset id='zgWyI'></fieldset></dl></div>

                            <small id='zgWyI'></small><noframes id='zgWyI'>

                          1. 主站蜘蛛池模板: 临沂招聘网_人才市场_招聘信息_求职招聘找工作请认准【马头商标】 | 济南网站建设_济南网站制作_济南网站设计_济南网站建设公司_富库网络旗下模易宝_模板建站 | 实验室装修_实验室设计_实验室规划设计- 上海广建净化工程公司 | 聚合氯化铝价格_聚合氯化铝厂家_pac絮凝剂-唐达净水官网 | 工业制氮机_psa制氮机厂家-宏骁智能装备科技江苏有限公司 | 网带通过式抛丸机,,网带式打砂机,吊钩式,抛丸机,中山抛丸机生产厂家,江门抛丸机,佛山吊钩式,东莞抛丸机,中山市泰达自动化设备有限公司 | 道康宁消泡剂-瓦克-大川进口消泡剂供应商 | 万濠投影仪_瑞士TRIMOS高度仪_尼康投影仪V12BDC|量子仪器 | 云南标线|昆明划线|道路标线|交通标线-就选云南云路施工公司-云南云路科技有限公司 | 比士亚-专业恒温恒湿酒窖,酒柜,雪茄柜的设计定制| 运动木地板厂家_体育木地板安装_篮球木地板选购_实木运动地板价格 | 爱佩恒温恒湿测试箱|高低温实验箱|高低温冲击试验箱|冷热冲击试验箱-您身边的模拟环境试验设备技术专家-合作热线:400-6727-800-广东爱佩试验设备有限公司 | 固诺家居-全屋定制十大品牌_整体衣柜木门橱柜招商加盟 | 卧涛科技有限公司科技项目申报公司|高新技术企业申报|专利申请 | 宏源科技-房地产售楼系统|线上开盘系统|售楼管理系统|线上开盘软件 | 化妆品加工厂-化妆品加工-化妆品代加工-面膜加工-广东欧泉生化科技有限公司 | 精密冲床,高速冲床等冲压设备生产商-常州晋志德压力机厂 | 雨水收集系统厂家-雨水收集利用-模块雨水收集池-徐州博智环保科技有限公司 | 深圳诚暄fpc首页-柔性线路板,fpc柔性线路板打样生产厂家 | 焊管生产线_焊管机组_轧辊模具_焊管设备_焊管设备厂家_石家庄翔昱机械 | 山东聚盛新型材料有限公司-纳米防腐隔热彩铝板和纳米防腐隔热板以及钛锡板、PVDF氟膜板供应商 | 医院专用门厂家报价-医用病房门尺寸大全-抗菌木门品牌推荐 | led全彩屏-室内|学校|展厅|p3|户外|会议室|圆柱|p2.5LED显示屏-LED显示屏价格-LED互动地砖屏_蕙宇屏科技 | 网优资讯-为循环资源、大宗商品、工业服务提供资讯与行情分析的数据服务平台 | 曙光腾达官网-天津脚手架租赁-木板架出租-移动门式脚手架租赁「免费搭设」 | 连续油炸机,全自动油炸机,花生米油炸机-烟台茂源食品机械制造有限公司 | 广州食堂承包_广州团餐配送_广州堂食餐饮服务公司 - 旺记餐饮 | 车辆定位管理系统_汽车GPS系统_车载北斗系统 - 朗致物联 | 棕刚玉_白刚玉_铝酸钙-锐石新材料| 河南道路标志牌_交通路标牌_交通标志牌厂家-郑州路畅交通 | 大通天成企业资质代办_承装修试电力设施许可证_增值电信业务经营许可证_无人机运营合格证_广播电视节目制作许可证 | 探鸣起名网-品牌起名-英文商标起名-公司命名-企业取名包满意 | 首页|光催化反应器_平行反应仪_光化学反应仪-北京普林塞斯科技有限公司 | 工业冷却塔维修厂家_方形不锈钢工业凉水塔维修改造方案-广东康明节能空调有限公司 | 光谱仪_积分球_分布光度计_灯具检测生产厂家_杭州松朗光电【官网】 | 杭州代理记账费用-公司注销需要多久-公司变更监事_杭州福道财务管理咨询有限公司 | 代理记账_公司起名核名_公司注册_工商注册-睿婕实业有限公司 | 佛山市德信昌电子有限公司 | 粉末冶金-粉末冶金齿轮-粉末冶金零件厂家-东莞市正朗精密金属零件有限公司 | 鹤壁创新仪器公司-全自动量热仪,定硫仪,煤炭测硫仪,灰熔点测定仪,快速自动测氢仪,工业分析仪,煤质化验仪器 | 德国进口电锅炉_商用电热水器_壁挂炉_电采暖器_电热锅炉[德国宝] |