gpt4 book ai didi

c - TCP套接字服务器

转载 作者:行者123 更新时间:2023-11-30 17:11:20 24 4
gpt4 key购买 nike

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

我有一个连接了客户端的应用程序示例服务器。然后我停止了应用程序并再次启动它,它说绑定(bind)错误,因为我没有使用 SO_REUSEADDR。我看到 close_wait 中几乎没有 clinet 连接。我发现我们需要关闭该特定套接字的 processid。但 netstat -p 给出空白进程 ID。那么如何杀死这个进程以及有没有办法使用 c apis 杀死所有套接字(完全是所有)。

最佳答案

CLOSE_WAIT 状态表示某个远程客户端已发送一个 FIN 段以表明它不会发送更多数据,以及一个 ACK已发送确认信息,但应用程序进程尚未close(2)套接字,并且内核正在等待本地端关闭。一定有一个本地进程在某个地方打开了该套接字,因为状态只是在等待本地关闭。

还有一些状态不显示内核管理的套接字上的进程(因为没有)。但是CLOSE_WAIT表示本地进程已收到来自远程端的关闭,但本身尚未完成关闭。由于内核代表进程执行的任务之一是关闭其所有描述符,因此如果进程已exit(2),则必须已向套接字发出关闭信号,从而移动状态CLOSE_WAITLAST_ACK(通常看不到)

关于c - TCP套接字服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32367985/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com