无法在c ++中注册mcast地址

时间:2012-12-28 14:57:02

标签: c++ vmware cisco

我正在为centos上的c ++中的路由算法协议工作。 centos在vmware上运行.. 当我的接口卡在vmware中以桥接模式连接时,我能够注册mcast地址224.0.0.9。但是当我使用gns3云连接我的centos与cisco路由器时,我得到了错误

所以整体topolgoy就像

cenots ++ bridgemode ----- bridgemode + centos //能够添加到组

centos + - vmnet1 ----------- + vmnet1(gns3cloud --- cisco路由器)//无法添加到组

h=gethostbyname("224.0.0.9");
if(h==NULL) {
     cout << "unknown group address"<<endl; 
  exit(1);
}

如果      memcpy((char *)&amp; mcastAddr.sin_addr.s_addr,h-&gt; h_addr_list [0],h-&gt; h_length);

mreq.imr_multiaddr.s_addr=mcastAddr.sin_addr.s_addr;   //
mreq.imr_interface.s_addr=htonl(INADDR_ANY);

int mc = setsockopt(soc,IPPROTO_IP,IP_ADD_MEMBERSHIP,(void *) &mreq, sizeof(mreq));
if(mc<0) {
 cout <<"unable to join MCAST GROUP"<<endl;
 printf("ERROR: %s\n", strerror(errno));
exit(1);

}

errno回归。 错误:没有这样的设备

ps#只有一个接口eth0使用它可以ping cisco路由器

欢迎任何指针

由于

0 个答案:

没有答案