Einzelnen Beitrag anzeigen

Benutzerbild von MasterEvil
MasterEvil

Registriert seit: 12. Feb 2005
Ort: Hannover
234 Beiträge
 
Delphi 7 Enterprise
 
#1

ReuseSocket (SO_REUSEADDR)

  Alt 22. Jan 2008, 15:16
Hallo,

ich verschicke mit meiner Applikation Nachrichten per UDP durch das Netzwerk. Da eine Anwendung mehrfach auf einem Rechner gestartet werden kann, habe ich nach einer Lösung gesucht, die UDPServer (ich benutze Indy) der Anwendungen an den selben Port zu binden.
Die Lösung des Problems habe ich in der Socket-Option SO_REUSEADDR gefunden, welche im TCPServer von Indy auch schon implementiert ist (Property ReuseSocket).
Habe die selbe Implementierung auch für den UDPServer gemacht und es funktioniert auch alles, solange ich Broadcasts empfangen. Alle Anwendungen bekommen dabei die selbe Nachricht und alles ist gut.

Probleme bereiten mir Nachrichten, welche direkt an die IP eines Rechner geschickt werden. Hier bekommt nur immer eine Anwendung die Nachricht (welche scheint zufällig zu sein). Die Anwendung scheint die Nachricht vom Socket-Stack zu nehmen und die nächste Anwendung sieht davon nichts mehr ...
Ich möchte aber, dass alle Anwendungen die Nachricht bekommen.

Hat jemand eine Idee? Ich hab von dem Stichwort Multicast gehört. Weiß damit aber nicht so recht etwas anzufangen.

Gruß,
Steffen
  Mit Zitat antworten Zitat