多播组成员资格通过RAW频道添加

时间:2018-06-29 08:37:42

标签: sockets network-programming udp raw-sockets setsockopt

我创建了一个套接字

sock_raw = socket( AF_PACKET , SOCK_RAW , htons(ETH_P_ALL))

我想添加多播组成员身份,其多播地址为224.0.0.139 [for ref。只要]。 为此,我使用了setsockopt

setsockopt( raw_sock, SOL_PACKET, PACKET_ADD_MEMBERSHIP,&mr, sizeof( mr ) )

其中mr.mr_type = PACKET_MR_MULTICAST用于多播添加成员身份

但是,我没有从该多播组收到任何数据包。我在IGMP数据包不正确的地方也使用Wireshark进行了调试。我检查了Linux内核代码,发现上述setsockopt函数仅在接收数据包时在接口处添加过滤器。 如果不是这样,那么我们如何从原始套接字发送多播组添加请求(IGMPv3)?

参考:packet man page

0 个答案:

没有答案