当前位置:   article > 正文

Python报错:ConnectionRefusedError: [WinError 10061] 由于目标计算机积极拒绝,无法连接。

connectionrefusederror: [winerror 10061] 由于目标计算机积极拒绝,无法连接。

Python报错:ConnectionRefusedError: [WinError 10061] 由于目标计算机积极拒绝,无法连接。

环境:windows

语言:python

故障:ConnectionRefusedError: [WinError 10061] 由于目标计算机积极拒绝,无法连接

详细背景:python,threading,多线程里建立tcp链接。虚拟tcp服务器工具:“TCP-UDP服务管理V3.02”

前言:2020年4月23日23:16:10 最近在学习python 多线程。线程里面涉及到tcp。100个线程,没问题。1000个,就报错了10061了。先百度了一边。都说“权限不够”,让去将局域网设置修改为“自动配置-自动检测设置”。作为老手,顺便就百度了自动和手动有啥区别。原来就是自动获取ip和手动设置ip的区别。作为老油条,我当然选择“手动”。

所以问题不在这里。加上100个线程创建tcp可以。分析到可能是线程创建过快,创建完毕即start(),然后就开始connect(),tcp服务器虚拟工具处理不过来,前一个线程还没connect处理好,后一个线程就开始connect过来了。于是就报错了。大部分原因,应该是这个工具“TCP-UDP服务管理V3.02”处理要建立链接还要进行一个界面控件的可视化列表显示,造成处理延时了。

解决方法:

  1. thread = threading.Thread(target = single_thread_job, name = ("Thread_num = %3d :"% i), args= (i, )) #threading的三个参数。函数名,线程名,元祖参数
  2. time.sleep(0.1) #创建之后延迟100ms执行start() 延迟即是本问题解决方案
  3. thread.start() #启动线程
  4. i = i + 1

实测可行。

原因分析:服务器处理速度跟不上客户端的链接和请求速度。需要优化服务端的瓶颈(如资源、连接池数、限制rps,设置qps阈值,其余不处理等)或者,也可以调低客户端的请求频次(如示例中,sleep(0.1))

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/148341?site
推荐阅读
相关标签
  

闽ICP备14008679号