1

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

所以总体拓扑结构就像

cenots++bridgemode-----bridgemode+centos //可以加入群组

centos+--vmnet1-----------+vmnet1(gns3cloud---cisco router) //无法加入群组

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

if memcpy((char *) &mcastAddr.sin_addr.s_addr,h->h_addr_list[0],h->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);

}

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

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

欢迎任何指针

谢谢

4

0 回答 0