套接字:绑定到 INADDR_ANY *和* 具有相同端口的另一个地址时,Linux 和 Windows 之间的行为存在差异

套接字:绑定到 INADDR_ANY *和* 具有相同端口的另一个地址时,Linux 和 Windows 之间的行为存在差异

假设尝试分别在两个地址“0.0.0.0:12345”上绑定两个套接字“127.0.0.1:12345”。

根据我测试的平台,行为会发生变化。

在 Linux 上,第二次尝试绑定时会返回 EADDRINUSE。在 Windows 上,不会报告任何错误,在我看来,这种行为是,如果给定端口上没有其他活动绑定,则在“0.0.0.0”上进行绑定就像一个后备绑定。

它是否正确?

如果是这样,是否有任何标准指定了其中一种行为,还是留给实施来决定?

最后,有没有办法配置 Linux 使其具有与 Windows 相同的行为,反之亦然?

相关内容