0

tomcat プロセス (pid: 28899) の netstat 出力は次のとおりです。

Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:8009            0.0.0.0:*               LISTEN      28899/java      
....
tcp        0      0 0.0.0.0:8000            0.0.0.0:*               LISTEN      28899/java        
....
tcp        0      0 127.0.0.1:8005          0.0.0.0:*               LISTEN      28899/java 

では、なぜ 1 つのプロセスが 3 つの TCP ポートをリッスンできるのでしょうか? 8009 と 8005 が tomcat の 2 つの子プロセスによってリッスンされ、netstat が親プロセス ID のみを表示するためでしょうか?

4

1 に答える 1

2

Tomcat は複数のポートでリッスンします。8005 はシャットダウン ポートで、8009 は Apache サーバーからの要求を処理するためのコネクタ ポートです。

一般に、プロセスは、複数のサーバー ソケットを開くだけで、必要な数のポートをリッスンできます。内部的には、各ポートが独自のスレッドによって処理される可能性が非常に高くなりますが、select()サービス呼び出しと非同期 I/O ではその必要はありません。

于 2012-11-06T20:52:38.563 に答える