我很惊讶地看到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。难道他们中的一个不应该使用Bind错误/地址或者出现这样的错误吗?
我正在运行Microsoft Windows Server 2008 R2 Enterprise,6.1.7600 N / A Build 7600
答案 0 :(得分:3)
一般来说,你是对的。但是,有一些选项可以让这种事情发生。您可能希望查看SO_REUSEADDR
以及它如何影响行为。
基本上,如果你设置SO_REUSEADDR
另一个进程可以bind
套接字。有关此问题的详细信息(以及SO_EXCLUSIVEADDRUSE
选项),请查看标题为Using SO_REUSEADDR
and SO_EXCLUSIVEADDRUSE
的MSDN页面。