gpt4 book ai didi

c - 如何在 C 中使用 igmp v3 加入多播组

转载 作者:行者123 更新时间:2023-11-30 17:49:30 24 4
gpt4 key购买 nike

为了加入多播组,我习惯于看到这样的代码:

struct ip_mreqn mreq;
mreq.im_address.s_addr = INADDR_ANY
mreq.imr_ifindex = 0;

inet_aton("232.etc..", $mreq.imr_multiaddr);
setsockopt(descriptor, SOL_IP, IP_ADD_MEMBERSHIP, &mreq, sizeof(mreq));

现在我遇到了一个问题,有人告诉我这是 v2 igmp 加入请求并且他们需要 v3。这是上面的代码中需要解决的问题,还是运行上述代码的主机上的硬件/网络/操作系统问题?如果上面的代码有误,我可以采取什么步骤来纠正?

最佳答案

Now I am running into an issue where someone is telling me this is a v2 igmp join request and that they require v3.

目前它不是任何类型的有效加入请求,因为它没有指定有效的多播组。 INADDR_ANY 不是一个多播组,它严格来说是一个绑定(bind)地址。多播组从 224.0.0.0 开始,但请确保选择一个对此用途合法且可用的组。

正确理解后所使用的协议(protocol)是 V2 还是 V3 都不受此代码的影响:这取决于 UDP 协议(protocol)栈在调用时执行的操作。你对此没有任何控制权。我也不明白为什么“某人”会需要 IGMP V3。

关于c - 如何在 C 中使用 igmp v3 加入多播组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17798758/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com