Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi TCPClient Read (https://www.delphipraxis.net/208112-tcpclient-read.html)

Schuby 10. Jun 2021 19:18

TCPClient Read
 
Hallo, ich übe mich gerade in TCPClient.
Daten senden und Daten zurück bekommen
ist kein Problem wenn sie gleich zurück kommen.
Muss ich aber warten bekomme ich ein error

Gibt es bei TCPClient etwas bevor ich Daten abhole
das ich prüfen kann ob Daten überhaupt zum abholen da sind.?

Ich hatte schon etwas wie TCPClient.IOHandler.WaitForData
gelesen, aber bei meiner Indy version kann ich nur
Form1.TCPClient.IOHandler.WaitFor(...)


Vorher hatte ich eine Serielle, da war das kein Probelm mit
ComPort1RxChar(Sender: TObject; Count: Integer);

mfg Schuby

TurboMagic 10. Jun 2021 20:39

AW: TCPClient Read
 
Kenne Indy nicht richtig. Aber da sollte es ein "Daten sind da" Event geben.

Schuby 10. Jun 2021 20:46

AW: TCPClient Read
 
Nein gibt es nicht jedenfalls ich finde nichts


mfg Schuby

Edelfix 11. Jun 2021 08:05

AW: TCPClient Read
 
Machst du das so in der Art?

Delphi-Quellcode:
function TDataModule1.Test:String;
var
  sAntwort: String;
begin
  IdTCPClient1.Connect;
  if IdTCPClient1.Connected then
  begin
    IdTCPClient1.IOHandler.WriteLn('StartSend')
    sAntwort := IdTCPClient1.IOHandler.ReadLn;
    Result := sAntwort;
  end;
  IdTCPClient1.Disconnect;
end;

Schuby 11. Jun 2021 15:25

AW: TCPClient Read
 
Hallo, ich hole erst das ReadWord ab, da sitzt mein Längen byte,
danach die Byte´s

Delphi-Quellcode:

//******************************************************************************
function RcvByte : Byte;
begin
  Result := Form1.TCPClient.IOHandler.ReadByte;
end;

//******************************************************************************
function RcvWord : word;
begin
  Result := Form1.TCPClient.IOHandler.ReadWord( FALSE );
end;

mfg Schuby

Gandalf2265 11. Jun 2021 19:24

AW: TCPClient Read
 
Bei Indy bleibt glaube ich wohl nur
- zyklisches Lesen mit gesetztem ReadTimeout
- eigenen Thread bauen der blockierend wartet und wenn da dann Daten liefert
- im HauptThread warten :cry:

Deshalb nehme ich lieber IPWorks (als Delphi-Edition in Delphi dabei). Da hat der Client ein Ereignis OnDataIn und liefert dabei Strings und Bytes.

Michael II 11. Jun 2021 20:15

AW: TCPClient Read
 
Hallo Schuby,
ich nutze fast täglich ICS, dort gibt's dafür das Ereignis OnDataAvailable.

Aber jetzt zu Indy. Ein sehr gutes Client-Server Beispiel für das, was du suchst findest du zum Glück immer noch hier.
In DP besprochen wurde es u.a. hier (Wenn der Server auch senden soll, dort unter #13).

- Du musst die Leitung nicht nach jedem Datenaustausch schliessen.
- Der Hauptthread wird nicht durch "Warten auf Daten" blockiert.

Schuby 13. Jun 2021 15:41

AW: TCPClient Read
 
Zitat:

Zitat von Michael II (Beitrag 1491019)
Hallo Schuby,
ich nutze fast täglich ICS, dort gibt's dafür das Ereignis OnDataAvailable.


Hallo Michael, sorry das ich jetzt erst Antworte,
ich habe mir mal das ICS Installiert.

Gibt es da ein Demo ?


mfg Schuby

Michael II 13. Jun 2021 18:52

AW: TCPClient Read
 
Hallo Schuby

es gibt viele Beispielanwendungen, welche mit ICS installiert werden. Du findest die Beispiele dort wo du ICS installiert hast unter Samples\Delphi.

Wenn du aber bereits mit ICS begonnen hast, dann schau dir doch mal das Beispiel in #7 an. Dort wird gezeigt, wie du mit Indy zwischen zwei Programmen Daten austauschst - ohne blockierendes Warten auf Daten, ohne die Verbindung nach jedem Datenpaket schliessen zu müssen.

Gruss
Michael

Schuby 13. Jun 2021 19:01

AW: TCPClient Read
 
Hallo Michael,
die Demos habe ich gefunden.
Aber ein Demo wie TCPClient von Indy habe ich noch nicht gefunden.

Du Schreibst ich solle mir das Beispiel #7 anschauen.?

Das suche ich jetzt


mfg Schuby


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:04 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz