【发布时间】:2015-09-03 05:59:19
【问题描述】:
Active Internet connections (w/o servers)
Prot Rec Sen Local Address Foreign Address State PID/PXX
tcp 1 0 192.169.3.120:64007 192.169.3.104:40968 CLOSE_WAIT -
tcp 7 0 192.169.3.120:64007 192.169.3.104:44637 CLOSE_WAIT -
tcp 17 0 192.169.3.120:64007 192.169.3.104:39950 CLOSE_WAIT -
tcp 7 0 192.169.3.120:64007 192.169.3.104:34229 CLOSE_WAIT -
以上回复来自sudo netstat -p。
我有一个连接了客户端的应用程序示例服务器。然后我停止了应用程序并再次启动它说绑定错误,因为我没有使用 SO_REUSEADDR。我看到close_wait中的clinet连接很少。我看到我们需要关闭该特定套接字的 processid。但 netstat -p 给出空白进程 ID。那么如何杀死这个进程以及有什么方法可以使用 c apis 杀死所有套接字(完全是全部)。
【问题讨论】:
-
为什么要明确地杀死它们?它们处于超时模式,很快就会从系统中删除
-
"... 给出空白进程 id。所以如何杀死这个进程 id" 你不能,因为没有进程,这从空的 PID 字段很明显。
-
@mangusta CLOSE_WAIT 不是超时模式。你在说什么?
-
对了,能不能看一下服务器代码?和客户端代码?如果没有一些代码,很难推测那里会发生什么。而且,你完全确定你做了正确的
netstat命令吗?请参阅下面的答案。