AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TCPClient Read

Ein Thema von Schuby · begonnen am 10. Jun 2021 · letzter Beitrag vom 13. Jun 2021
Antwort Antwort
Schuby

Registriert seit: 25. Dez 2018
102 Beiträge
 
#1

TCPClient Read

  Alt 10. Jun 2021, 20:18
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
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
3.023 Beiträge
 
Delphi 12 Athens
 
#2

AW: TCPClient Read

  Alt 10. Jun 2021, 21:39
Kenne Indy nicht richtig. Aber da sollte es ein "Daten sind da" Event geben.
  Mit Zitat antworten Zitat
Schuby

Registriert seit: 25. Dez 2018
102 Beiträge
 
#3

AW: TCPClient Read

  Alt 10. Jun 2021, 21:46
Nein gibt es nicht jedenfalls ich finde nichts


mfg Schuby
  Mit Zitat antworten Zitat
Edelfix

Registriert seit: 6. Feb 2015
Ort: Stadtoldendorf
225 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: TCPClient Read

  Alt 11. Jun 2021, 09:05
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;
  Mit Zitat antworten Zitat
Schuby

Registriert seit: 25. Dez 2018
102 Beiträge
 
#5

AW: TCPClient Read

  Alt 11. Jun 2021, 16:25
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
  Mit Zitat antworten Zitat
Benutzerbild von Gandalf2265
Gandalf2265

Registriert seit: 24. Mai 2009
Ort: Laurenburg (Unterkante Westerwald)
16 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: TCPClient Read

  Alt 11. Jun 2021, 20:24
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

Deshalb nehme ich lieber IPWorks (als Delphi-Edition in Delphi dabei). Da hat der Client ein Ereignis OnDataIn und liefert dabei Strings und Bytes.
Thorsten Maxeiner
allways change a running system
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:53 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