![]() |
Probleme bei Umstellung von TClientSocket auf TIdTCPClient
Möchte meine Anwendung die mit Hilfe der Socket-Komponenten läuft auf die Indy Komponenten umstellen!
Bei der Server-Anwendung gibt es keine Probleme, aber bei dem Client! Der TClientSocket hat das Event OnRead, welches ja anschlägt, wenn Daten beim Client ankommen... Aber beim TIdTCPClient kann ich nichts vergleichbares finden... Gibts da sowas nicht? Oder bin ich zu plöd? :wall: |
Re: Probleme bei Umstellung von TClientSocket auf TIdTCPClie
OK ich konnte folgende Sachen herrausbekommen:
Zitat:
Dann muß man noch mit einem Timer arbeiten, was ich als nicht schön ansehe... Warum haben die Indy-Entwickler kein so ein Event eingebaut? Bei anderen Indy-Client Komponenten ist es ja scheinbar vorhanden :cry: Aber man kann sich ein OnRead-Event selber schreiben, nur kein Plan wo ich da anfangen muß... Hat das schon mal wer gemacht? Ich weiß auch nicht ob ich das mit meinen Delphi Kenntnissen allein hinbekomm, da ich ja erst Anfänger bin :? |
Re: Probleme bei Umstellung von TClientSocket auf TIdTCPClie
Ok hab es gelöst, hab ein extra Thread zum lesen genommen...
DA meine Lösung:
Delphi-Quellcode:
Bye
Unit cTReadThread;
Interface Uses IdTCPClient, Classes; Type TOnReadEvent = Procedure ( TheTIdTCPClient: TIdTCPClient; AString: String ) Of Object; TReadThread = Class( TThread ) Private { Private-Deklarationen } Protected { Protected-Deklarationen } FOnRead: TOnReadEvent; MyTIdTCPclient: TIdTCPClient; Public { Public-Deklarationen } Published { Published-Deklarationen } Constructor Create( CreateSuspendend: Boolean; TheTIdTCPClient: TIdTCPClient ); Property OnRead: TOnReadEvent read FOnRead write FOnRead; Procedure Execute; Override; End; Implementation Constructor TReadThread.Create( CreateSuspendend: Boolean; TheTIdTCPClient: TIdTCPClient ); Begin Inherited Create( CreateSuspendend ); MyTIdTCPclient := TheTIdTCPClient; End; Procedure TReadThread.Execute; Begin While Not Terminated Do Begin If Assigned( FOnRead ) Then FOnRead(MyTIdTCPclient, MyTIdTCPclient.CurrentReadBuffer ); //If Assigned( FOnRead ) Then FOnRead(MyTIdTCPclient, MyTIdTCPclient.ReadLn ); End; End; end. |
Re: Probleme bei Umstellung von TClientSocket auf TIdTCPClie
das sit darauf bezogen das der Client text empfängt, was ist aber wenn es auch eine detei ist, z.B stream...
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10: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 by Thomas Breitkreuz