1

你好,

我使用设置套接字选项 IP_ADD_SOURCE_MEMBERSHIP 添加超过 10 个源地址。但是在 10 个源地址之后,我无法进一步添加。谁能告诉我如何为每个套接字添加 10 个以上的地址。我的代码如下,

袜子=套接字(AF_INET,SOCK_RAW,IPPROTO_UDP);

/* 下面的代码重复了 10 次以上 */

struct ip_mreq_source  mc_req;

mc_req.imr_multiaddr.s_addr   = grpaddr;
mc_req.imr_interface.s_addr   = ifaddr;
mc_req.imr_sourceaddr.s_addr  = srcaddr;

if ((setsockopt (sock, IPPROTO_IP, IP_ADD_SOURCE_MEMBERSHIP,
                 (void*) &mc_req,
                 sizeof (mc_req))) < 0)
{
    printf ("Can't set  IP_ADD_SOURCE_MEMBERSHIP!\n");
    exit (1);
}

添加 10 个源地址后出现无法设置 IP_ADD_SOURCE_MEMBERSHIP! 的错误。

提前致谢

德比约蒂

4

1 回答 1

3

看起来您正在达到内核限制。

检查配置的值:

/proc/sys/net/ipv4/igmp_max_msf

并根据需要进行调整。例如:

echo 20 > /proc/sys/net/ipv4/igmp_max_msf
于 2011-01-10T15:11:25.690 回答