2011-01-10 2 views
1

HI 더 다음 10 소스 주소를 추가 할 수 IP_ADD_SOURCE_MEMBERSHIP가없는 사용하는 RAW 소켓

좀 더 다음 10 개 소스 주소를 추가 할 수있는 소켓 옵션 IP_ADD_SOURCE_MEMBERSHIP을 설정 사용하십시오

. 그러나 10 개의 발신 주소 이후에는 더 이상 추가 할 수 없습니다. 아무도 소켓 당 10 개 이상의 주소를 추가 할 수있는 방법을 말해 줄 수 있습니까? 내 코드는 다음과 같습니다.

sock = socket (AF_INET, SOCK_RAW, IPPROTO_UDP);

/* 아래의 코드는 IP_ADD_SOURCE_MEMBERSHIP를 설정할 수 없습니다로 오는 10 소스 주소 오류를 추가 한 후 더 후 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); 
} 

에 대한 repeted! 사전에

감사합니다 당신은 커널 한계를 치는 것 같아

Debjyoti

+0

어떤 OS를 타겟팅합니까? – Simone

+0

나는 리눅스 운영체제를 목표로하고있다. – Debjyoti

답변

2

.

확인에 구성된 값 :

은/proc/sys 인/그물 /의 IPv4/igmp_max_msf

하고 필요에 따라 조정합니다. 예 :

echo 20 > /proc/sys/net/ipv4/igmp_max_msf