我创建了一个套接字
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)?