HI,
我使用set socket选项IP_ADD_SOURCE_MEMBERSHIP添加超过10个源地址。但是在10个源地址后我无法进一步添加。任何人都可以告诉我如何为每个插槽添加超过10个地址。我的代码如下,
sock = socket(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!。
提前致谢
Debjyoti
答案 0 :(得分:2)
看起来你正在达到内核限制。
检查以下配置的值:
的/ proc / SYS /净/的IPv4 / igmp_max_msf
并根据需要进行调整。例如:
echo 20 > /proc/sys/net/ipv4/igmp_max_msf