![]() |
TIdTCPClient: Eingehende Verbindung
Hallo,
Ich habe eine Frage bezüglich der Indy Komponente TIdTCPClient. Gibt es ein Event, das ausgelöst wird, wenn eine Nachricht vom Server eintrifft. Also der Server hat ja extra das Event OnExecute, aber bei dem Client finde ich das nicht. Wie kann ich das lösen? //Edit: Titel geändert |
Re: TIdTCPClient: Eingehende Verbindung
Hallo
Erstelle einen Timer und rufe in einem separaten Thread ReadBuffer() auf. Ein Beispiel eines "Lister Threads" findest du ![]() |
Re: TIdTCPClient: Eingehende Verbindung
also ich hab mir das so gemacht: ich habe ein object von typ TIdTCPClient abgeleitet und darin ein object, welches von einer thread-klasse abgeleitet ist, instanziiert. bei der onexecute-methode des thread-objects habe ich dann den IOHandler des TIdTCPClient-Object angesprochen und geschaut, ob daten vorhanden sind. das kannst du so abfragen
Delphi-Quellcode:
auf die eingehenden daten reagiere ich wie folgt. ich leite diese eben an die nächst "höhere" instanz weiter, bei der eben eine entsprechende methode definiert sein muss.
var
cmd : String; { ... } // Aktuellen Puffer lesen cmd := tcpClient.IOHandler.Readln(); // Prüfen, ob Daten angekommen sind if (cmd <> '') then begin { Hier musst du noch auf die eingehenden Daten reagieren. } end;
Delphi-Quellcode:
vielleicht hilft dir das ja ein bisschen ;)
TOnRecieve = procedure(aStr: String) of object;
TReadThread = class(TThread) private { ...} FOnRecieve : TOnRecieve; protexted procedure Execute(); override; public { ... } property OnRecieve : TOnRecieve read FOnRecieve write FOnRecieve; end; { WICHTIG: Anpassen der OnExecute } proceudre TReadThread.Execute(); var cmd : String; begin { ... } // Aktuellen Puffer lesen cmd := tcpClient.IOHandler.Readln(); // Prüfen, ob Daten angekommen sind if (cmd <> '') then begin // Eingehende Daten weiterleiten if (Assigned(FOnRecieve)) then FOnRecieve(cmd); end; { ... } end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:22 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