我有两个应用程序,一个是基于C的,一个是基于NodeJs的。两个应用需要在一台 Centos 机器中处理来自同一端口的 UDP 消息。是否可以有 2 个程序绑定到同一个 UDP 端口并同时接收消息?
在 NodeJs 中,我使用了 dgram:
dgram.createSocket({type: "udp4", reuseAddr: true})
在 C 中,我使用 SO_REUSEADDR
、SO_REUSEPORT
参数作为设置套接字。
问题是:我无法在稍后启动的应用程序中收到任何UDP消息。这意味着只有一个应用程序可以接收 UDP 消息。任何帮助真的非常感谢。谢谢
在 UDP 套接字上使用 SO_REUSEADDR
或 SO_REUSEPORT
仅适用于传入的组播或广播数据包。
如果单播数据包传入,它是传递到所有套接字还是仅传递到一个(以及哪一个(是实现定义的。