2009-11-12 9 views

Antwort

1

Das ist vielleicht nicht das, was Sie suchen, aber als ich Code schrieb, der eine Reihe von Broadcast- und Socket-Verbindungen und dergleichen verwendete, habe ich nur zwei virtuelle Maschinen in VMWare, bootete sie von den Live-CDs und habe meinen Code hochgeladen. Wenn der Code in Windows ausgeführt wird, führen Sie einfach zwei Windows-Installationen durch. VMWare platziert die Maschinen im selben Subnetz, so dass die Kommunikation zwischen ihnen funktioniert, Broadcast und alle. (Und ich nehme an Multicast, obwohl ich keine direkte Erfahrung damit habe.)

0

Ein gewisses Maß an Netzwerk-Setup erforderlich ist. Wenn Sie kein physisches Netzwerk erstellen möchten, können Sie einer Netzwerkkarte mehrere IP-Adressen hinzufügen. Wenn Ihr Computer mehr als eine Netzwerkkarte besitzt, können Sie sogar ein Netzwerk mit nur zwei Karten und einem Hub erstellen. Wenn Ihr Gerät über eine drahtlose Schnittstelle und eine kabelgebundene Schnittstelle verfügt, erhalten Sie auch ein Netzwerk, wenn Sie das Gerät über die drahtlose und die kabelgebundene Schnittstelle mit Ihrem drahtlosen Hub verbinden.

Hoffnung eine dieser Ideen hilft. Pat O

0

Ich würde sagen, die einfachste Sache zu Setup mehrere IPs auf Ihrem NIC zu tun wäre. Achte nur darauf, dass du auf bestimmte Adressen hörst und nicht auf alle.

HTH

1

Warum nicht eine Testversion von VMWare herunterladen? Es wird eine Weile dauern, aber eine VM einrichten. Führen Sie dann x-Kopien der VM auf Ihrem einen System aus (wenn Sie können). Jeder wird eine virtuelle NIC haben. Sie können dann das Netzwerk so einrichten, dass beide im selben Netzwerk erreichbar sind. Dann teste deine Tests.

9

Möglicherweise haben Sie dies bereits herausgefunden (da die Frage jetzt 2 Jahre alt ist), aber um Multicast auf einem einzigen Host zu tun, müssen Sie nur zwei Dinge tun: (1) stellen Sie sicher, dass Ihre empfangenen Multicast-Sockets SO_REUSEADDR haben Satz (so dass mehrere Prozesse können die gleiche Multicast-Adresse binden) und (2) stellen Sie sicher, dass das Senden Multicast-Sockets IP_MULTICAST_LOOP gesetzt haben (so dass Pakete „zurückgeschleift“ werden an dem Empfänger auf demselben System). Wenn Ihre Anwendung einen einzelnen Socket zum Senden und Empfangen von Multicasts verwendet, würden Sie beide Socket-Optionen darauf setzen.

int recv_s = socket(AF_INET, SOCK_DGRAM, 0); 
int send_s = socket(AF_INET, SOCK_DGRAM, 0); 
u_int yes = 1; 
setsockopt(recv_s, SOL_SOCKET, SO_REUSEADDR, &yes, sizeof(yes)); 
setsockopt(send_s, IPPROTO_IP, IP_MULTICAST_LOOP, &yes, sizeof(yes)); 
+0

Kann dies auch auf Android getestet werden? – zIronManBox

+0

Aber welche IP verwende ich für die gleiche Box Multicast ???? – LatencyFighter

+0

Sie können an jede Multicast-Adresse senden, die Ihr System überwacht. Für IPv6 ist ff01 :: 1 die beste Wahl für Multicast mit Multicast im selben Host. Für IPv4 sind die IP-Adressen aller Hosts 224.0.0.1 am einfachsten zu Testzwecken. Wenn Sie jedoch etwas bereitstellen möchten, sollten Sie wahrscheinlich eine andere Adresse wählen, damit Ihr Datenverkehr nicht von Hosts empfangen wird, die an Ihrem Datenverkehr nicht interessiert sind. https://en.wikipedia.org/wiki/Multicast_address enthält weitere Informationen zu IPv4- und IPv6-Multicastadressen. –