【发布时间】:2017-01-22 08:21:22
【问题描述】:
在 TCP 中,不共享相同可执行映像的不同进程(例如,没有fork())是否可以在 Windows、Linux 或 OSX 上使用相同的客户端端口?这与使用setsockopt() 设置的套接字选项SO_REUSEADDR 和SO_REUSEPORT 我相信特别相关。
据我所知,我相信同一个进程/映像可以做到这一点,但我还没有找到有关多个进程/映像的信息。我想这在理论上是可能的,因为每个套接字都是由 5 值元组 [IP_PROTO, src_ip:src_port, dst_ip:dst_port] 定义的。所以我会假设,只要共享一个客户端端口的多个 TCP 连接不是对同一个 dst_ip:dst_port 进行的,这在理论上是可能的。
【问题讨论】: