tomcat进程的netstat输出(pid:28899)如下:
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端口呢?是因为tomcat和netstat的两个子进程监听8009和8005只显示父进程ID吗?
答案 0 :(得分:2)
Tomcat侦听多个端口。 8005是关闭端口,8009是用于处理来自Apache服务器的请求的连接器端口。
通常,只需打开多个服务器套接字,进程就可以侦听任意数量的端口。在内部,每个端口很可能由其自己的线程处理,但即使对于select()
服务调用和异步I / O也不是必需的。