linux - 如何删除 CLOSE_WAIT 套接字连接

标签 linux sockets

我编写了一个与特定端口上的服务器交互的小程序。该程序运行良好,但是:

一旦程序意外终止,并且该套接字连接显示为 CLOSE_WAIT 状态。如果我尝试运行一个程序,它会挂起,我必须强制它关闭,这会累积 更多 CLOSE_WAIT 套接字连接。

有没有办法刷新这些连接?

最佳答案

CLOSE_WAIT 表示您的程序仍在运行,并且尚未关闭套接字(内核正在等待它这样做)。将 -p 添加到 netstat 以获取 pid,然后更强力地终止它(如果需要,使用 SIGKILL)。那应该摆脱您的 CLOSE_WAIT 套接字。您也可以使用 ps 来查找 pid。

SO_REUSEADDR 用于服务器和 TIME_WAIT 套接字,因此不适用于此处。

关于linux - 如何删除 CLOSE_WAIT 套接字连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15912370/

相关文章:

ruby - 即使明确给出路径,jenkins 也无法找到 rake 安装

C++ 套接字不能接收超过 21845 个字节

c - c中的字节操作

linux - 使用 awk 创建具有特定列的平方根的新文件

c - C 语言的 REST 客户端

c - TCP 套接字缓冲区大小也应该是连接 MSS 的偶数倍

c - macOS上使用什么时钟返回SO_TIMESTAMP的值?

linux - 我应该使用 init 和 systemd 中的什么来为我的服务创建守护进程?

linux - Pyaudio 无法识别 ReSpeaker usb 麦克风 InputChannels

linux - 在 apt-get install 之后安装程序时出现 API 错误