我有一种情况,我遇到临时端口耗尽,然后导致异常。我想限制连接以避免这种情况。有没有办法检测正在使用的临时端口的数量?
谢谢,埃里克
我有一种情况,我遇到临时端口耗尽,然后导致异常。我想限制连接以避免这种情况。有没有办法检测正在使用的临时端口的数量?
谢谢,埃里克
要获取打开的连接列表,您可以使用 netstat 命令。与普遍认为(其他答案)相反,临时端口的数量是有限的(Windows 2003 为 4000,更高版本为 16000,大多数 Linux 为 16000)。另请注意,一旦端口变得未使用,释放端口需要 4 分钟,因此这确实是一个问题。
MSDN上有一篇文章处理它: http: //msdn.microsoft.com/en-us/library/aa560610 (v=bts.20).aspx
用尽临时 TCP 端口的唯一方法是,如果您是客户端并且您已经打开了近 64k 出站连接,并且在最后两分钟内没有关闭它们。
这有时会发生在测试场景中,但它并不代表真实世界的案例,因此没有真正的意义。
这种情况的症状是连接时出现绑定错误。如果您没有收到绑定错误,则说明您没有此问题。