我有和这个问题相同的问题。
PID存在于netstat中,但不存在于任务管理器中
我发现一个正在运行的进程,PID 26376正在侦听端口9001和9002,当我试图运行我的程序(作为一项服务)时绑定到失败的端口。
但当我试图使用taskkill/PID来杀死它时,它会说26376。类似地,当我试图在任务中找到流程时选择了"显示所有用户的进程"的经理,我找不到它在任何地方。
接受的答案是:
可能发生的情况是,您的进程在崩溃或以其他方式退出而未显式关闭。通常操作系统会清理这些东西,但只有当进程记录消失了。
我正在编写C++代码,为了解决一个未知/未解决的问题,我正在执行taskkill,它有时会锁定端口。如何在下次使用时释放它而不重新启动整个操作系统?有没有办法解放这些港口?
TCP TIME-WAIT状态将保持2MSL,因此端口仍将保持打开状态。您可以设置socketoptSO_REUSEADDR
,它将工作。
看看这个。