Reicht der folgende Code aus, um die Loopback-Schnittstelle daran zu hindern, meinen eigenen ausgehenden Multicast-Datenverkehr zu empfangen? Mein udp-Code scheint immer noch Pakete zu empfangen, selbst wenn ich das RJ-45-Ethernet-Kabel vom NIC ziehe.Deaktivierung der Fähigkeit, meine eigenen ausgehenden Multicast-Datagramme zu empfangen
char loopch = 0;
if(setsockopt(sd, IPPROTO_IP, IP_MULTICAST_LOOP, (char *)&loopch, sizeof(loopch)) < 0){
perror("Setting IP_MULTICAST_LOOP error");
close(sd);
return -1;}
Ihre bearbeitete Frage macht keinen Sinn. Warum sollte das Ziehen des Kabels den Multicast-Loopback der eigenen Sends verhindern? Multicast Loopback muss nicht durch das Kabel gehen. – EJP
Wenn ich deaktiviere, dass Multicast zu meiner lo-Schnittstelle mit dem obigen Code zurückgeschleift wird, sollte meine Anwendung keinen Verkehr mit dem unplugged Kabel empfangen. Logische Aussage? Im Wesentlichen sage ich, dass der obige Code den Multicast-Verkehr nicht davon abhält, zu meiner lo-Schnittstelle zurückgeschleift zu werden. –