从两侧关闭TCP套接字使套接字保持活动状态

时间:2018-05-24 20:08:58

标签: c++ linux sockets time-wait

我在Linux上使用C.客户端connect()创建了一个TCP套接字,服务器和服务器accept()就是它。当客户端请求被提供 - 或者发生了超时 - 我希望该套接字完全关闭。

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

问题是,我怎么能彻底杀死它?

请记住,我不需要使用FINACK标记进行任何握手,这是我在谷歌搜索时看到的。

编辑:我看过这个Avoiding TIME_WAIT帖子,但它已经9岁了,这就是为什么我不完全信任它。

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

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

UDP套接字不符合我程序的其他规范......

0 个答案:

没有答案