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

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

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

netstat -a|grep TIME_WAIT
tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
tcp e100069210180.zmf: e100069202104.zmf.tbs:websm TIME_WAIT
tcp e100069210180.zmf: 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的快速回收

Cannot assign requested address出现的原因及解决方案的更多相关文章

  1. 不能绑定到端口号:9194原因:Cannot assign requested address: JVM_Bind

    晚上将老服务器程序从win2008部署在新的云服务器win2012上,其实就是复制过去改改配置,启动时突然报不能绑定到端口号:9194原因:Cannot assign requested addres ...

  2. com.sun.xml.internal.ws.server.ServerRtException: Server Runtime Error: java.net.BindException: Cannot assign requested address: bind

    在发布 web service 时报错: Endpoint.publish(publishAddress, hl7MessageReveiver); com.sun.xml.internal.ws.s ...

  3. tomcat java.net.BindException: Cannot assign requested address 解决方法

    今天线上TOMCAT启动时遇到了下比较麻烦的问题,错误如下: 21-Apr-2016 15:14:19.077 SEVERE [main] org.apache.catalina.core.Stand ...

  4. TIME_WAIT引起Cannot assign requested address报错

    1.  问题描述 有时候用redis客户端(php或者java客户端)连接Redis服务器,报错:"Cannot assign requested address." 原因是客户端 ...

  5. Tomcat启动报错:严重: StandardServer.await: create[8005] java.net.BindException: Cannot assign requested address

    org.apache.catalina.core.StandardServer await        SEVERE: StandardServer.await: create[8005]:    ...

  6. Dubbo广播模式下报错:Can't assign requested address解决办法

    原因: 尝试使用Dubbo的multicast模式,发现一运行就报Can't assign requested address的错误,造成这种原因的主要是系统中开启了IPV6协议(比如window7) ...

  7. kafka.common.KafkaException: Socket server failed to bind to hdp1:9092: Cannot assign requested address.

    ERROR [KafkaServer id=1] Fatal error during KafkaServer startup. Prepare to shutdown (kafka.server.K ...

  8. Tomcat启动异常 java.net.BindException: Cannot assign requested address: JVM_Bind

    从Apache官网下载的tomcat7,在MyEclipse中启动时抛出如下异常: 严重: StandardServer.await: create[localhost:8005]: java.net ...

  9. DataNode启动不成功——java.net.BindException: Port in use: localhost:0 Caused by: java.net.BindException: Cannot assign requested address解决办法

    爱折腾的人总是会出线各种奇怪的问题.记得之前听一位大师讲过,我们不能踩完前进路上的所有坑前进,而应该学会怎样避开前进路上的坑,踩得坑越多,可能你的经验越丰富,但是付出的时间代价可能不是经验能换来的.我 ...

随机推荐

  1. 以Administrator权限运行VS时无法拖入文件

    解决办法 1.从任务管理器中关闭explorer进程(你会发现任务栏什么的都没有了) 2.从任务管理器启动explorer.exe(win8需要手动勾选"以管理员权限运行",win ...

  2. chart.js插件生成折线图时数据普遍较大时Y轴数据不从0开始的解决办法[bubuko.com]

    chart.js插件生成折线图时数据普遍较大时Y轴数据不从0开始的解决办法,原文:http://bubuko.com/infodetail-328671.html 默认情况下如下图 Y轴并不是从0开始 ...

  3. WPF ListBox

    记录一些ListBox的用法 设置ListBox选中项的背景颜色 如何为标准的ListBox添加ItemClick事件 连续选择同一项时SelectionChanged 事件不响应的问题 1.设置Li ...

  4. IIS7.5 伪静态 脚本映射 配置方法

    首先,是IIS7.0的配置,由于Windows Server 2008操作系统默认的IIS版本为7.0,我们知道,IIS7.0与IIS6.0 核心注意的地方:先要将应用池设置为集成模式,修改OK后,再 ...

  5. Codeforces Round #383 (Div. 2) D. Arpa's weak amphitheater and Mehrdad's valuable Hoses(分组背包+dsu)

    D. Arpa's weak amphitheater and Mehrdad's valuable Hoses Problem Description: Mehrdad wants to invit ...

  6. delphi 一个自动控制机的硅控板检测程序,用多线程和API,没有用控件,少做改动就能用 用485开发

    一个自动控制机的硅控板检测程序,用多线程和API,没有用控件,少做改动就能用Unit CommThread; Interface Uses  Windows, Classes, SysUtils, G ...

  7. Python 之 时间字符串、时间戳、时间差、任意时间字符串转换时间对象

    1. 时间字符串 --> 时间戳 1) time 模块 timestring = '2016-12-21 10:22:56' print time.mktime(time.strptime(ti ...

  8. Ubuntu1404 (2)

    1.启动远程桌面 (1)设置桌面共享:usr->share->applications->桌面共享,勾选"允许查看桌面"和"允许控制桌面",& ...

  9. 测试家庭流媒体服务器Windows7

    测试首先选择了Darwin Streaming Server (DSS) for Windows 下载地址:http://dss.macosforge.org/downloads/DarwinStre ...

  10. Window 端口查询

    1. Window环境下查询端口使用情况 方法1: 使用netstat [-参数]|findstr [端口号]来直接查询某个端口的具体使用情况 示例: netstat -ano|findstr &qu ...