我正在调查 Windows 中的端口耗尽问题,netstat 的输出显示许多端口既为 BOUND 又为 ESTABLISHED
...
TCP 10.0.1.9:64318 10.0.1.9:8400 ESTABLISHED 10348
...
TCP 0.0.0.0:64318 0.0.0.0:0 BOUND 10348
...
怎么会这样?
更新:据我了解,BOUND 是套接字的一种暂时状态,通常不应出现在 netstat 的输出中(事实上它几乎从未出现过)。
在上面的例子中,同一台机器中的两个程序之间建立了连接。
端口 8400 被绑定到服务器程序中的一个监听套接字。端口 64318 被(系统)绑定到客户端程序中的一个连接套接字。
我看不出任何关于端口 64318 如何也显示为 BOUND 套接字的逻辑解释。
但事实确实如此。
答案1
netstat 输出描述得很好。基本上,临时端口是为了连接而开启的,一旦连接建立,它就会从监听状态中移除。