2

netstat が同じポートでリッスンしている 2 つのプロセスを報告しているのを見て驚きました。

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 error/Address already in use またはそのようなエラーを受け取るべきではありませんか?

Microsoft Windows Server 2008 R2 Enterprise、6.1.7600 N/A ビルド 7600 を実行しています

4

1 に答える 1

3

一般的に、あなたは正しいでしょう。ただし、このようなことを可能にするオプションがあります。SO_REUSEADDRそれが行動にどのように影響するかを調べたいと思うかもしれません。

基本的には、SO_REUSEADDR別のプロセスを設定すればbindソケットできます。これ (およびオプション) の詳細についてはSO_EXCLUSIVEADDRUSE、MSDN のUsing SO_REUSEADDRandSO_EXCLUSIVEADDRUSEというタイトルのページを参照してください。

于 2013-07-31T20:49:55.457 に答える