如何强制关闭打开/悬挂的插座? 我在C++上开发了一个在Linux上运行的应用程序。此应用程序在启动时打开某些TCP套接字。但是,如果在连接处于已建立状态时终止此应用程序,服务器端套接字仍会在关闭状态(TIME_WAIT)下保持几分钟

如何强制关闭打开/悬挂的插座? 我在C++上开发了一个在Linux上运行的应用程序。此应用程序在启动时打开某些TCP套接字。但是,如果在连接处于已建立状态时终止此应用程序,服务器端套接字仍会在关闭状态(TIME_WAIT)下保持几分钟,c,linux,sockets,C,Linux,Sockets,由于我的应用程序被立即重新启动,它无法绑定端口,从上次崩溃到关闭需要60秒 是否有任何系统调用可以强制关闭所有打开/悬挂的插座??因此,在进行绑定之前,我可以确保所有打开/悬挂的套接字都已关闭,并且绑定不会失败 谢谢。您可以使用setsockopt设置以便重新使用EADDR。那你就可以马上绑起来了 int optval = 1; setsockopt(s, SOL_SOCKET, SO_REUSEADDR, &optval, sizeof(optval));

由于我的应用程序被立即重新启动,它无法绑定端口,从上次崩溃到关闭需要60秒

是否有任何系统调用可以强制关闭所有打开/悬挂的插座??因此,在进行绑定之前,我可以确保所有打开/悬挂的套接字都已关闭,并且绑定不会失败


谢谢。

您可以使用
setsockopt
设置
以便重新使用EADDR
。那你就可以马上绑起来了

int optval = 1;
setsockopt(s, SOL_SOCKET, SO_REUSEADDR, &optval, sizeof(optval));