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 

那么为什么一个进程可以监听三个 tcp 端口呢?是不是因为8009和8005被tomcat的两个子进程监听,netstat只显示父进程ID?

4

1 回答 1

2

Tomcat 侦听多个端口。8005 是关闭端口,8009 是连接器端口,用于为来自 Apache 服务器的请求提供服务。

一般来说,只要打开多个服务器套接字,一个进程就可以监听任意数量的端口。在内部,每个端口极有可能由其自己的线程处理,但即使是select()服务调用和异步 I/O 也不需要这样做。

于 2012-11-06T20:52:38.563 回答