c - 多播监听器接受另一个端口上的套接字

标签 c sockets udp multicast

我在 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/

相关文章:

javascript - 将图像缓冲区发送到 node.js tcp 服务器

javascript - 如何使用 nodejs 发送 udp 包?

sockets - LabVIEW中的UDP广播

c - Visual Studio 中 C 中的 Weird Stack Error 错误

c - 边缘触发 epoll c

c - for循环中的本地计数器变量

c - 通过UDP协议(protocol)发送巨大的(大约40K字节)数据,怎么可能呢?

c - 反转从二进制文件读取的指针

c# - 客户端之间的客户端服务器UDP连接c#

linux - tcpdump 显示数据包,但应用程序显示数据包是突发的