Hallo zusammen,
indy 10_5343 (also neuestes build)
Ich hab einen UDPServer
Delphi-Quellcode:
arUDPServer := TIdUDPServer.create;
arUDPServer.defaultPort := arPort+1; // ist 'ne konstante
arUDPServer.BroadcastEnabled := true;
arUDPServer.onUDPRead := arUDPServerUDPRead;
arUDPServer.active := true;
Die UDPRead-Prozedur lautet schlicht:
Delphi-Quellcode:
procedure TMainForm.arUDPServerUDPRead (
AThread: TIdUDPListenerThread; const AData: TIdBytes; ABinding: TIdSocketHandle);
begin
infobox (format ('%s hat %s geschrieben.', [aBinding.peerIP, bytesToString (aData)]));
end;
Bleibt zum schluß noch ein
arUDPServer.Broadcast ('Just a test', arPort+1);
Dieses Programm lasse ich auf zwei rechnern laufen.
Setze ich bei Rechner1 den Broadcast ab, bekommt dieser, da ja der Server auch sendet, seinen eigenen Broadcast, ich kriege also die Messagebox angezeigt, so weit, so gut.
Rechner Nummer 2 bekommt den Broadcast auch, aber zweimal? Hääää?
Bin ich schon bei diesem einfachen Beispiel zu blöd, oder was läuft hier falsch?
Hiiiilfe!
Nehme ich zum Senden einen UDPClient, passiert das gleiche... Also Rechner 2 bekommt den Broadcast zweimal.
Viele Grüße
Marco