小编use*_*459的帖子

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

在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
Run Code Online (Sandbox Code Playgroud)

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

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

我的问题:

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

谢谢!

windows networking

5
推荐指数
0
解决办法
2596
查看次数

标签 统计

networking ×1

windows ×1