我正在运行一个侦听端口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是空闲进程,它什么都不做。 那么为什么要使用我的端口?
答案 0 :(得分:2)
因为端口处于TIME-WAIT状态,这意味着它已被两个对等体关闭,并且只是按照RFC 793超时。因此没有实际的进程可归因于它,因此其PID显示为零。 AFAIK Windows中的空闲进程为1,而不是0。