@Poolspieler:
Ich weiß nicht wo Dein Problem beim IdUDPServer liegt,
Du kannst im OnUDP ankommende Nachrichten empfangen und in dieser Procedure
auch gleich wieder antworten.
Hier ein Bsp. Code, aber Achtung der ist noch von Indy9:
Delphi-Quellcode:
procedure TfrmUdpXYZ.IdUDPSvrUDPRead(Sender: TObject; AData: TStream; ABinding: TIdSocketHandle);
Var DataStringStream: TStringStream;
sRequest : String;
sReply : String;
begin
DataStringStream := TStringStream.Create('');
try
DataStringStream.CopyFrom(AData, AData.Size);
sRequest := DataStringStream.DataString;
finally
FreeAndNil(DataStringStream);
end;
// Request auswerten und Antwort schicken
sReply := 'MyRESPONSE';
ABinding.SendTo(ABinding.PeerIP, ABinding.PeerPort, sReply[1], Length(sReply));
end;
Das sollte relativ einfach nach Indy10 zu portieren sein.(WriteTIdBytesToStream)
Einen entsprechenden Client würde ich gründsätzlich, egal ob UDP oder
TCP in einen Thread auslagern, der sich ums SEnden und empfangen kümmert.
Greetz Data
Der Horizont vieler Menschen ist ein Kreis mit Radius Null, und das nennen sie ihren Standpunkt.