我最近在Windows上发现了SO_REUSEADDR
;并且tomcat通过default使用它。
我做了一个小测试,找出当另一个进程也在监听同一个端口时会发生什么。在我的案例中,另一个过程是netcat
。结果令人惊讶:
nc
(netcat
)还是tomcat
,都来自tomcat的回复bin/tomcat.bat
停止tomcat,它也会杀死nc
进程这有什么神奇之处? tomcat如何始终能够获取传入的请求?这是(tomcat将服务所有连接,即使其他进程正在侦听)保证行为?我无法想象它如何得到保证,但想想问。
答案 0 :(得分:2)
我能够回答用户在回答other问题时提出的问题。
我意识到,因为我在测试中使用wget http://localhost:8080
,所以只使用tomcat正在监听的IPv6
。
当我将其更改为http://127.0.0.1:8080
时,我看到了完全不同的行为。