假设尝试分别在两个地址“0.0.0.0:12345”上绑定两个套接字和“127.0.0.1:12345”。
根据我测试的平台,行为会发生变化。
在 Linux 上,第二次尝试绑定时会返回 EADDRINUSE。在 Windows 上,不会报告任何错误,在我看来,这种行为是,如果给定端口上没有其他活动绑定,则在“0.0.0.0”上进行绑定就像一个后备绑定。
它是否正确?
如果是这样,是否有任何标准指定了其中一种行为,还是留给实施来决定?
最后,有没有办法配置 Linux 使其具有与 Windows 相同的行为,反之亦然?