Я работал для протокола маршрутизации алгоритма в C ++ на Centos. Centos был запущен на VMware ..
мне удалось зарегистрировать адрес mcast 224.0.0.9, когда моя интерфейсная карта подключена в режиме моста в vmware. но когда я соединил свои centos с маршрутизатором cisco используя облако gns3, я получил ошибки
так в целом тополгой это как
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 *) &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, с помощью которого можно пинговать маршрутизатор cisco
Любой указатель приветствуется
Спасибо
Задача ещё не решена.
Других решений пока нет …