Windows会无限期地为不存在的进程保留侦听套接字

时间:2013-05-23 21:27:05

标签: windows networking

在Windows上,在进程628(我的应用程序)退出后,tcpview显示:

Process        PID Pro Local Address Local Port Remote Address  Rem Port State
-------------- --- --- ------------- ---------- --------------- -------- -----------
<non-existent> 628 TCP 0.0.0.0       http       0.0.0.0         0        LISTENING
<non-existent> 628 TCP 0.0.0.0       https      0.0.0.0         0        LISTENING
<non-existent> 628 TCP 0.0.0.0       http       x.x.x.x         xxxxx    ESTABLISHED

我能够使用tcpview杀死ESTABLISHED连接,但无法使用tcpview或CurrPorts杀死LISTENING连接(作为管理员)。 LISTENING连接保持无限期(> 24小时),阻止应用程序在重新启动时绑定到端口80和443(“[10048]通常只允许使用每个套接字地址(协议/网络地址/端口)”)。

当我在绑定侦听套接字之前添加SO_REUSEADDR选项时,应用程序仍无法绑定端口,这次使用“[10013]尝试以其访问权限禁止的方式访问套接字”。

我的问题:

  • 在拥有进程消失后保留侦听套接字是否有意义?它没有处于半闭状态,因为没有建立连接。
  • 是否预计不存在进程的套接字会无限期地延续?
  • Windows / Winsocks中存在这些已知错误吗?

谢谢!

0 个答案:

没有答案