2

我很惊讶地看到 netstat 报告了两个进程在同一个端口上监听:

c:\Windows\System32>netstat -ao | find "8083"
  TCP    0.0.0.0:8083           ***qa-w2k8-05:0        LISTENING       5532
  TCP    0.0.0.0:8083           ***qa-w2k8-05:0        LISTENING       1572
  TCP    [::]:8083              ***qa-w2k8-05:0        LISTENING       5532
  TCP    [::]:8083              ***qa-w2k8-05:0        LISTENING       1572

c:\Windows\System32>tasklist | find "5532"
java.exe                      5532 RDP-Tcp#0                  2  1,448,776 K

c:\Windows\System32>tasklist | find "1572"
FrameworkService.exe          1572 Services                   0     11,016 K

Java 进程是我的 Web 服务器,FrameworkService 是 Mcafee。http 请求甚至没有到达我的服务器,所以我假设它到达了 Mcafee。他们中的一个不应该得到绑定错误/地址已经在使用中或一些这样的错误吗?

我正在运行 Microsoft Windows Server 2008 R2 Enterprise,6.1.7600 N/A Build 7600

4

1 回答 1

3

一般来说,你会是正确的。但是,有一些选项可以让这种事情发生。您可能想看看SO_REUSEADDR它如何影响行为。

基本上,如果你设置SO_REUSEADDR另一个进程可以bind使用socket。有关此(和SO_EXCLUSIVEADDRUSE选项)的更多详细信息,请查看标题为Using SO_REUSEADDRandSO_EXCLUSIVEADDRUSE的 MSDN 页面。

于 2013-07-31T20:49:55.457 回答