登录 - 知识管理

迷惑 1- 应用在 DEBUG 后可以再次启动

背景:

测试有一个 BUG, 我就想远程 DEBUG,每次 DEBUG 就没问题,不 DEBUG 就有问题

思考点:

DEBUG 的区别就是,会占据端口,但是开端口是在 Client 上,为什么 DEBUG 连接后就没问题呢。
多进程可以监听同一端口吗

结论:
SO_REUSEADDR 不允许处于 listen 状态的地址重复使用,
SO_REUSEPORT 允许,同时,SO_REUSEPORT 参数还会把新来的 tcp 连接负载均衡到各个 listen socket 上,为我们 tcp 服务器编程,提供了一种新的模式。
所以, Java 远程 Debug 是开了一个 SO_REUSEADDRsocket 端口