|
|
1
20
检查此链接 http://www.toptip.ca/2010/02/linux-eaddrnotavail-address-not.html 编辑 :是的,我想再加一点,但由于紧急情况,我不得不把它剪掉 在尝试重新连接之前是否关闭了套接字?关闭将告诉系统socketpair(ip/端口)现在是空闲的。 以下是一些附加项目,请看:
链接到一个类似于你的bug(答案很接近底部) http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4294599 似乎您的套接字基本上处于某个TCP内部状态,添加重新连接的延迟可能会解决您的问题,就像他们在错误报告中所做的那样。 |
|
|
2
3
如果给定的端口无效(如0),也可能发生这种情况。 |
|
|
3
2
如果您不愿意更改可用的临时端口数(如David建议的那样),或者您需要的连接数超过理论最大值,则有两种其他方法可以减少正在使用的端口数。但是,它们在不同程度上违反了TCP标准,因此应该谨慎使用。
首先是打开
只有在
见
TCP option SO_LINGER (zero) - when it's required
更多细节。(从实验上看,你的设置似乎并不重要
二是使用
这个选项不太好,因为您仍然会按照
|
|
|
4
1
我有这个问题。我通过启用tcp时间戳解决了这个问题。 根本原因:
解决方案: 请在客户端和服务器端启用tcp时间戳。 echo 1>/proc/sys/net/ipv4/tcp_时间戳 启用tcp时间戳的原因: 当我们启用tcp_tw_reuse时,可以在套接字过期之前使用处于TIME_WAIT状态的套接字,内核将尝试确保没有关于tcp序列号的冲突。如果我们启用tcp_时间戳,它将确保这些冲突不会发生。但是,我们需要在两端启用TCP时间戳。有关血淋淋的详细信息,请参见tcp_twsk_unique的定义。 |
|
|
5
0
另一件要检查的事情是接口是否启动。我最近在使用网络名称空间时被这个弄糊涂了,因为它似乎创建了一个新的网络名称空间,生成了一个完全独立的环回接口,但并没有显示出来(至少在Debian wheezy的版本中是这样)。这让我有一段时间没有想到,因为人们通常不会认为环回已经关闭。 |
|
AstralHex · 矩阵乘法代码工作不正常 1 年前 |
|
|
Fishie · 作为类成员的智能指针是否仍然自动释放?[关闭] 1 年前 |
|
|
Die4Toast · 递归调用成员箭头运算符-> 1 年前 |
|
|
Anka Hanım · 关于结构和动态数组地址的问题 1 年前 |