IPPROTO_RM blockiert während des Annahmeaufrufs

9

Diese Frage ist ähnlich wie Ссылка , aber mein Code unterscheidet sich etwas von dem Code, daher kann es zu einer anderen Antwort kommen.

Ich versuche, eine zuverlässige Multicast-Server / Client Proof-of-Concept-Konfiguration zu erhalten.

Die Lösung selbst ist eine Server / Client-Verbindung. Der Client verbindet sich über TCP / IP mit dem Server. Der Server öffnet dann einen zuverlässigen Multicast-Socket, auf den der Client hört. Der Client sendet Nachrichten über TCP und der Server gibt sie über IPPROTO_RM zurück. Das Endziel besteht darin, dass viele Clients mit dem Server verbunden sind und alle jede geteilte Nachricht empfangen.

Der Beispielcode basiert auf dieser Seite .

Ich habe meine RM-Sockets ähnlich eingerichtet (siehe Listings unten). Die TCP-Sockets funktionieren einwandfrei. Das Problem liegt in den RM Sockets. Der Server öffnet den Multicast-Socket, dann binds und connects richtig zur Multicast-Adresse. Der Client jedoch listens korrekt, aber der Aufruf von accept blockiert für immer.

Client- und Serverprozesse werden auf demselben Host ausgeführt.

Ich habe überprüft, und Multicasting-Unterstützung ist auf dem Host (Server 2008) installiert.

Update : Ich habe festgestellt, dass das Akzeptieren manchmal zurückkehrt, wenn ich zuerst einige Daten von der Senderseite in den Socket sende. Dies ist weder ideal noch zuverlässig.

Aktualisieren : Die Zeichen zeigen auf den Schalter. Scheint so, als würde ein kleiner Hub es nicht schneiden. Wir hatten einen urkomischen Vorfall, der dazu führte, dass das gesamte Gebäude verloren ging.

Auflistungen

Server erstellt und verbindet den Multicast Sender

%Vor%

Client erstellt und akzeptiert Multicast Reader

%Vor%     
Anthony 04.03.2013, 03:23
quelle

1 Antwort

1

Haben Sie MSMQ (Microsoft Message Queuing) installiert? Es ist erforderlich, damit IPPROTO_RM auf Ms-basierten Computern funktioniert. Plus es funktioniert nur für Windows-Version & gt; = Xp || 2003

Bearbeiten: Ich habe gesehen, dass Sie es bereits überprüft haben.

    
Gull_Code 20.03.2013 09:14
quelle