0

我已经使用 C 在 Linux 上创建了一个 TCP 套接字。 Clientconnect()的到 server 和 serveraccept()的它。当客户端请求已被服务 - 或发生超时 - 我希望该套接字完全关闭。

但是,尽管双方都调用了该函数,但我在终端中看到套接字在该状态下close()还存活了几分钟。TIME_WAIT

问题是,我怎样才能完全杀死它?

请记住,我不需要与 Google 搜索时看到的任何握手FINACK标志。

编辑:我看过这个避免 TIME_WAIT线程,但它已经 9 岁了,这就是我不完全信任它的原因。

还有,我要实现的通信是本地主机中的进程间通信,必须能够每秒打开和关闭最多100个连接。这就是为什么,我不需要任何握手。而且我不希望套接字保持在 TIME_WAIT 状态一分钟,因为操作系统充满了套接字并且性能显着下降。

编辑 2:最后我使用了 SO_REUSEPORT 标志并且没有延迟尝试打开新连接,如果操作系统已经填满......

UDP 套接字不满足我程序的其他规范...

4

0 回答 0