如何释放被终止进程锁定的端口



我有和这个问题相同的问题。

PID存在于netstat中,但不存在于任务管理器中

我发现一个正在运行的进程,PID 26376正在侦听端口9001和9002,当我试图运行我的程序(作为一项服务)时绑定到失败的端口。

但当我试图使用taskkill/PID来杀死它时,它会说26376。类似地,当我试图在任务中找到流程时选择了"显示所有用户的进程"的经理,我找不到它在任何地方。

接受的答案是:

可能发生的情况是,您的进程在崩溃或以其他方式退出而未显式关闭。通常操作系统会清理这些东西,但只有当进程记录消失了。

我正在编写C++代码,为了解决一个未知/未解决的问题,我正在执行taskkill,它有时会锁定端口。如何在下次使用时释放它而不重新启动整个操作系统?有没有办法解放这些港口?

TCP TIME-WAIT状态将保持2MSL,因此端口仍将保持打开状态。您可以设置socketoptSO_REUSEADDR,它将工作。

看看这个。

最新更新