2011-01-10 11 views
1

HIのための10個の送信元アドレス、より多くを追加することができませんでしIP_ADD_SOURCE_MEMBERSHIPを私は10元アドレス、より多くを追加するように設定ソケットオプションIP_ADD_SOURCE_MEMBERSHIPを使用し、RAWソケット

使用。しかし、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

私はLinux OSをターゲットにしています。 – Debjyoti

答えて

2

チェックで設定された値:

は、/ proc/sys/net/IPv4の/ igmp_max_msf

し、必要に応じて調整します。例:

echo 20 > /proc/sys/net/ipv4/igmp_max_msf 
関連する問題