【发布时间】:2021-09-05 03:49:28
【问题描述】:
我在 Windows 10 下开发了一个简单的应用程序,它侦听给定端口上的 UDP 数据报,然后将数据报路由到使用相同端口的多播组(例如:绑定端口 0.0.0.0:5202 并发送到多播组224.0.0.100:5202)。这是必需的,因为最初以多播方式发送的数据源可能连接到不支持多播的网络。应用程序使单播通信适应多播。为了避免多播接收者发生变化并尽量减少发送者的变化,我们决定保持端口不变(源端口和最终目标端口)。
问题是一旦我启动适配器应用程序,在同一主机上运行的多播接收者无法绑定到多播组。我正在使用 boost asio 库让应用程序在 Windows 10 和 Linux 目标下运行。
我设置了重用地址套接字选项,但客户端无论如何都无法绑定。任何想法 ?还是这东西在 Windows 10 下无法运行?
【问题讨论】:
-
您的应用和多播接收应用需要使用 SO_REUSEPORT。
标签: windows udp boost-asio bind multicast