zoukankan      html  css  js  c++  java
  • Cannot assign requested address出现的原因及解决方案

    今天使用python多线程请求服务时,出现Cannot assign requested address错误

    网上找了下原因,大致上是由于客户端频繁的连服务器,由于每次连接都在很短的时间内结束,导致很多的TIME_WAIT,以至于用光了可用的端 口号,所以新的连接没办法绑定端口,即“Cannot assign requested address”。是客户端的问题不是服务器端的问题。通过netstat,的确看到很多TIME_WAIT状态的连接。

    client端频繁建立连接,而端口释放较慢,导致建立新连接时无可用端口。

    netstat -a|grep TIME_WAIT
    tcp        0      0 e100069210180.zmf:49477     e100069202104.zmf.tbs:websm TIME_WAIT   
    tcp        0      0 e100069210180.zmf:49481     e100069202104.zmf.tbs:websm TIME_WAIT   
    tcp        0      0 e100069210180.zmf:49469     e100069202104.zmf.tbs:websm TIME_WAIT   
    tcp        0      0 e100069210180.zmf:49505     e100069202104.zmf.tbs:websm TIME_WAIT   
    tcp        0      0 e100069210180.zmf:49547     e100069202104.zmf.tbs:websm TIME_WAIT   
    tcp        0      0 e100069210180.zmf:49513     e100069202104.zmf.tbs:websm TIME_WAIT   
    tcp        0      0 e100069210180.zmf:49543     e100069202104.zmf.tbs:websm TIME_WAIT   
    tcp        0      0 e100069210180.zmf:49571     e100069202104.zmf.tbs:websm TIME_WAIT   
    tcp        0      0 e100069210180.zmf:49488     e100069202104.zmf.tbs:websm TIME_WAIT   
    tcp        0      0 e100069210180.zmf:49582     e100069202104.zmf.tbs:websm TIME_WAIT   
    tcp        0      0 e100069210180.zmf:49476     e100069202104.zmf.tbs:websm TIME_WAIT   
    tcp        0      0 e100069210180.zmf:49462     e100069202104.zmf.tbs:websm TIME_WAIT   
    tcp        0      0 e100069210180.zmf:49561     e100069202104.zmf.tbs:websm TIME_WAIT   
    tcp        0      0 e100069210180.zmf:49259     e100069202104.zmf.tbs:websm TIME_WAIT   
    tcp        0      0 e100069210180.zmf:49371     e100069202104.zmf.tbs:websm TIME_WAIT   
    tcp        0      0 e100069210180.zmf:49455     e100069202104.zmf.tbs:websm TIME_WAIT   
    tcp        0      0 e100069210180.zmf:49572     e100069202104.zmf.tbs:websm TIME_WAIT   
    tcp        0      0 e100069210180.zmf:49509     e100069202104.zmf.tbs:websm TIME_WAIT   
    tcp        0      0 e100069210180.zmf:49546     e100069202104.zmf.tbs:websm TIME_WAIT   
    tcp        0      0 e100069210180.zmf:49539     e100069202104.zmf.tbs:websm TIME_WAIT   
    tcp        0      0 e100069210180.zmf:49468     e100069202104.zmf.tbs:websm TIME_WAIT   
    tcp        0      0 e100069210180.zmf:49496     e100069202104.zmf.tbs:websm TIME_WAIT   
    tcp        0      0 e100069210180.zmf:49313     e100069202104.zmf.tbs:websm TIME_WAIT   
    tcp        0      0 e100069210180.zmf:49479     e100069202104.zmf.tbs:websm TIME_WAIT   
    tcp        0      0 e100069210180.zmf:49486     e100069202104.zmf.tbs:websm TIME_WAIT   
    tcp        0      0 e100069210180.zmf:49452     e100069202104.zmf.tbs:websm TIME_WAIT   
    tcp        0      0 e100069210180.zmf:49500     e100069202104.zmf.tbs:websm TIME_WAIT   
    tcp        0      0 e100069210180.zmf:49447     e100069202104.zmf.tbs:websm TIME_WAIT   
    tcp        0      0 e100069210180.zmf:49580     e100069202104.zmf.tbs:websm TIME_WAIT   
    tcp        0      0 e100069210180.zmf:49565     e100069202104.zmf.tbs:websm TIME_WAIT   
    tcp        0      0 e100069210180.zmf:49454     e100069202104.zmf.tbs:websm TIME_WAIT   
    tcp        0      0 e100069210180.zmf:49499     e100069202104.zmf.tbs:websm TIME_WAIT   
    tcp        0      0 e100069210180.zmf:49494     e100069202104.zmf.tbs:websm TIME_WAIT   
    tcp        0      0 e100069210180.zmf:49591     e100069202104.zmf.tbs:websm TIME_WAIT   
    tcp        0      0 e100069210180.zmf:49566     e100069202104.zmf.tbs:websm TIME_WAIT   
    tcp        0      0 e100069210180.zmf:49557     e100069202104.zmf.tbs:websm TIME_WAIT   
    tcp        0      0 e100069210180.zmf:49495     e100069202104.zmf.tbs:websm TIME_WAIT

    解决办法

    执行命令修改如下2个内核参数 (需要root权限) 
    sysctl -w net.ipv4.tcp_timestamps=1  开启对于TCP时间戳的支持,若该项设置为0,则下面一项设置不起作用
    sysctl -w net.ipv4.tcp_tw_recycle=1  表示开启TCP连接中TIME-WAIT sockets的快速回收

  • 相关阅读:
    摄像头距离标定方法研究(得到像素和毫米的转换比)
    mfc通过消息传递参数进行程序间通信
    基于Opencv和Mfc的图像处理增强库GOCVHelper(索引)
    【20160924】GOCVHelper MFC增强算法(4)
    【20160924】GOCVHelper 图像处理部分(3)
    Xamarin Essentials教程使用指南针Compass
    Xamarin Essentials教程使用加速度传感器Accelerometer
    XamarinSQLite教程下载安装SQLite/SQL Server Compact Toolbox
    Xamarin Essentials教程屏幕常亮ScreenLock
    Xamarin Essentials教程振动Vibration
  • 原文地址:https://www.cnblogs.com/duanxingxing/p/5686159.html
Copyright © 2011-2022 走看看