Mac 监听同一端口未报错

在 macOS Catalina 中, 先是 nginx 监听了4000端口, 后写程序监听4000端口竟然没有出错. 
 
接着在 linux 中测试, 同样的程序同样的端口, linux 却报错
 
然后找到这个问题
 
和 SO_REUSEPORT 有关
 
参考链接
 
linux 在3.9引入SO_REUSEPORT特性, 支持多个进程或者线程绑定到同一端口,提高服务器程序的性能
 
所以。在mac上的表现应该是这个问题。
 
SO_REUSEPORT 选项分发数据包的方法是计算对端IP、端口加上本地IP、端口这四个值的哈希值,通过这个哈希值将数据包分发到不同进程上。 
原文地址:https://www.cnblogs.com/restful/p/12965452.html