0

我正在运行一个侦听端口 2811 的服务器程序,以及在该端口上进行通信的一些客户端。当我从命令行运行 netstat 以查看哪个进程正在使用端口 2811 时,我得到进程 0 也在使用它:

C:>netstat -ano | find ":2811"
TCP    0.0.0.0:2811           0.0.0.0:0              LISTENING       5448
TCP    127.0.0.1:62391        127.0.0.1:2811         TIME_WAIT       0
TCP    127.0.0.1:62392        127.0.0.1:2811         TIME_WAIT       0

... about 20 more similar lines with pid=0. Then:

TCP    192.168.50.64:2811     192.168.50.64:62237    ESTABLISHED     5448
TCP    192.168.50.64:2811     192.168.50.64:62262    ESTABLISHED     5448
TCP    192.168.50.64:2811     192.168.50.64:62434    ESTABLISHED     5448
TCP    192.168.50.64:62237    192.168.50.64:2811     ESTABLISHED     9472
TCP    192.168.50.64:62262    192.168.50.64:2811     ESTABLISHED     7640
TCP    192.168.50.64:62434    192.168.50.64:2811     ESTABLISHED     5076

如果我理解正确,进程 0 是空闲进程,它什么也不做。那么它为什么要使用我的端口呢?

4

1 回答 1

2

因为端口处于 TIME-WAIT 状态,这意味着它已被两个对等方关闭并且只是根据 RFC 793 超时。因此没有实际进程归因于它,因此其 PID 显示为零。AFAIK Windows 中的空闲进程是 1,而不是 0。

于 2013-07-09T08:31:56.350 回答