![]() |
UDP Indy10 - Daten austauschen
Hallo Leute,
ich seh mal wieder den Wald nicht... Simples Problem: Ich will mit einer Anwendung kommunizieren via UDP. Ich benutze hier Delphi2009 und Indy10, ergo eine TIdUDPClient-Kompo. Daten senden an die andere Anwendung funktioniert wunderbar. Doch diese Anwendung schickt mir eine Antwort zurück - die ich nie erhalte. Da es keine Events im TIdUDPClient gibt, die mir signalisieren, das ich was bekommen habe, polle ich per Timer-Event. Aber ich erhalte nie Daten. Was mache ich falsch ? Wenn Verweise auf andere UDP-Komponenten als Indy10, dann nur welche, die auch mit D2009 laufen ;) Die entscheidenden Codestellen:
Delphi-Quellcode:
x'posted @ DF
//Schalte unsere Lampe auf grün, wenn Verbindung ok
procedure TTUT_Main.IdUDPClient1Connected(Sender: TObject); begin IPStatus.FillColor:=clLime; end; //Lampe auf rot, wenn Verbindung weg procedure TTUT_Main.IdUDPClient1Disconnected(Sender: TObject); begin IPStatus.FillColor:=clRed; end; //Anzeige der Stati, die Indy uns mitteilt (Kommt eh nur Connect, Disconnect, Resolve etcpp) procedure TTUT_Main.IdUDPClient1Status(ASender: TObject; const AStatus: TIdStatus; const AStatusText: string); begin RzMemo1.Lines.Add('UDPClient: '+AStatusText); end; //Polling des UDP. Der Timer läuft alle 100ms hier durch - es kommt nur nie was an :-( procedure TTUT_Main.IdUDPServer1UDPRead(AThread: TIdUDPListenerThread; AData: TBytes; ABinding: TIdSocketHandle); var s: string; i: integer; begin s:=''; for i := 0 to Length(AData) - 1 do s:=s+chr(AData[i]); RzMemo1.Lines.Add('Received: '+s); end; |
Re: UDP Indy10 - Daten austauschen
Gerade gemerkt: Ignoriert bitte "IdUDPServer1UDPRead" - das ist ein Trümmer von einem Experiment.
Der Timer-Event sieht so aus:
Delphi-Quellcode:
procedure TTUT_Main.Timer1Timer(Sender: TObject);
var s: string; begin if not IDUDPClient1.Connected then exit; s:=IdUDPClient1.ReceiveString(10); if s='' then exit; RzMemo1.Lines.Add('Received: '+s); end; |
Re: UDP Indy10 - Daten austauschen
|
Re: UDP Indy10 - Daten austauschen
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:37 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz