Windows 中的 SO_REUSEADDR 和 UDP 行为
我知道在 *NIX 环境中使用 SO_REUSEADDR 和 UDP 的行为类似于多播,其中绑定到同一端口的多个客户端可以同时侦听和接收广播数据报。 Windows 上也是这样吗?
I'm aware that using SO_REUSEADDR with UDP in a *NIX environment, behaves like a multicast, where multiple clients bound to the same port can listen and receive broadcast datagrams simultaneously. Is this the behavior on Windows as well?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
Windows 上绑定到同一端口的多个 UDP 套接字将一起接收广播数据包。
这是一个演示程序,您可以使用 GCC 为 Windows 和 Linux 构建并使用 Netcat 进行测试,如上所述。在这两个系统中,当使用单播地址作为目标时,只有一个套接字(A 或 B)接收每个数据报。如果使用广播地址,则两个套接字都会收到该消息。
Multiple UDP sockets on Windows bound to the same port will all receive broadcast packets together.
Here's a demo program you can build for windows and Linux with GCC and test with Netcat as mentioned. In both systems, only one socket (either A or B) receives each datagram when a unicast address is used as the target. If a broadcast address is used then both sockets will receive the message.