Eigentlich gibt es bei UDP keine Unterscheidung zwischen Server und Client. Bei
Indy wird es dennoch gemacht. Vielleicht, weill man beim Client davon ausgeht, dass nix empfangen wird und damit Code gespart werden kann.
Die UDPsocket-Komponente von Borland ist etwas schwach (da kann man auch gleich die
WinAPI nehmen), deswegen habe ich mal bei
Indy geschaut.
Du benötigst:
TidUDPServer mit folgenden Einstellungen (ich lege den Port mal auf 6000)
-DefaultPort: 6000
-BroadCastEnabled: True
-und wenn du etwas machen willst (empfangen oder senden): natürlich active auf true
und dann noch sowas hier:
Delphi-Quellcode:
procedure TForm1.IdUDPServerUDPRead(Sender: TObject; AData: TStream;
ABinding: TIdSocketHandle);
var s:string;
begin
setlength(s,aData.size);
aData.Read(s[1],length(s));
showmessage(s);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
idUDPServer.Send('255.255.255.255',6000,'Hallo');
end;
Edit: Aber ich bin in
Indy nicht wirklich bewandert, vielleicht gibts noch andere Möglichkeiten (z.B. die Methode Broadcast)
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.