造成socket.error: [Errno 99] Cannot assign requested
2013-09-06 08:41
1616 查看
在用python进行socket编程的时候,你可能会在进行connect的时候发现系统给你报了这么个错误:
socket.error: [Errno 99] Cannot assign requested address
网上你去搜,基本都是说bind的时候,地址已经被用了,都是胡扯。地址被用报的错误应该是:
Address already in use才对
然后我看得都是英文的,说明外国人也不是想象中的那么一丝不苟,
言归正传。socket发起connect请求的时候会随机分配一个端口给你。这个分配的端口是有范围的,记录在:
/proc/sys/net/ipv4/ip_local_port_range
这个文件里面(fedora 17).当你用多个进程发起过多的请求的时候,端口用完了就会报这个错误。比如我就开了4个进程,一下发起了40000个请求。
你可以做个实验试试,切换到root用户,敲一下这条命令:
echo 32768 32769 > /proc/sys/net/ipv4/ip_local_port_range
这下你打开人人,微博就会发现很多图片加载不出来了。因为图片加载在浏览器里面就是并行加载的,由于你没有足够的端口数,所以图片加载都失败了。别当心,这个修改是临时的(是不是临时的我也不知道,听别人说的)
修改过来用下面这条命令:
echo 32768 61000 > /proc/sys/net/ipv4/ip_local_port_range
32768 到 61000 是系统默认的随机分配端口范围(再次声明,fedora 17版本)
socket.error: [Errno 99] Cannot assign requested address
网上你去搜,基本都是说bind的时候,地址已经被用了,都是胡扯。地址被用报的错误应该是:
Address already in use才对
然后我看得都是英文的,说明外国人也不是想象中的那么一丝不苟,
言归正传。socket发起connect请求的时候会随机分配一个端口给你。这个分配的端口是有范围的,记录在:
/proc/sys/net/ipv4/ip_local_port_range
这个文件里面(fedora 17).当你用多个进程发起过多的请求的时候,端口用完了就会报这个错误。比如我就开了4个进程,一下发起了40000个请求。
你可以做个实验试试,切换到root用户,敲一下这条命令:
echo 32768 32769 > /proc/sys/net/ipv4/ip_local_port_range
这下你打开人人,微博就会发现很多图片加载不出来了。因为图片加载在浏览器里面就是并行加载的,由于你没有足够的端口数,所以图片加载都失败了。别当心,这个修改是临时的(是不是临时的我也不知道,听别人说的)
修改过来用下面这条命令:
echo 32768 61000 > /proc/sys/net/ipv4/ip_local_port_range
32768 到 61000 是系统默认的随机分配端口范围(再次声明,fedora 17版本)
相关文章推荐
- 造成socket.error: [Errno 99] Cannot assign requested
- 造成socket.error: [Errno 99] Cannot assign requested
- ipython notebook error: [Errno 99] Cannot assign requested address
- time_wait太多导致[error] (99)Cannot assign requested address: proxy
- fastdfs errno: 99, error info: Cannot assign requested address
- 服务器启动socket服务报错 java.net.BindException Cannot assign requested address
- Nginx: 99: Cannot assign requested address for upstream
- udp bind 127.0.0.1出现: Cannot assign requested address" error
- bind error : Cannot assign requested address,该如何处理
- php连接memcahed出现Cannot assign requested address (99)的解决方法
- Socket connect error 99(Cannot assign requested address)
- php连接memcahed出现Cannot assign requested address (99)的解决方法
- php连接memcahed出现Cannot assign requested address (99)的解决方法
- 短时间大量connect()返回errno 99: cannot assign request address
- tomcat启动报java.net.BindException: Cannot assign requested address
- Cannot assign requested address解决办法
- Cannot assign requested address 问题
- Mac电脑下使用Socket报错socket抛出Can’t assign requested address解决
- python web开发遇到socket.error[errno 10013]
- Tomcat出现 Cannot assign requested address的解决方法