我在 C 中有一个正在监听的多播监听器 229.0.0.1,但是接受发往 224.0.0.1 的 UDP 套接字。
有人可以解释为什么会这样吗?
进程绑定(bind)(服务器)
到 INADDR_ANY
,多播结构指定为 229.0.0.1;不应该
我的“服务器”进程丢弃了没有为其他任何东西选择的 UDP 数据报
比显式配置的要多?
最佳答案
224.0.0.1 是保留 multicast address用于寻址本地网段上的所有主机。所有网络接口(interface)始终监听此多播地址。
因此,如果数据包发送到您的应用程序正在使用的端口上的 224.0.0.1,无论您是否请求监听该特定多播地址,您的应用程序都会收到该数据包。
关于c - 多播监听器接受另一个端口上的套接字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32288436/