![]() |
Indy 10 und TCP Client...
Hi,
ich habe nun ein TCPClient aus der Indy Sammlung. Möchte ganz gerne wissen wiviel Zeilen ich mit IOHandler.Readln auslesen kann... Im moment mach ich das über einen Timer...
Delphi-Quellcode:
Nur lese ich nicht alle Zeilen aus die drin sind sondern immer nur eine Zeile . :(
if IdTCPClient.Connected then begin
with IdTCPClient do begin strResult:=IOHandler.ReadLn; Memo1.Lines.Add(strResult); end; end; Hat jemand eine Idee wie man immer alles auslesen kann? Gruß Frank... |
Re: Indy 10 und TCP Client...
Zitat:
Mehrere Zeilen ließt man mit ReadStrings() |
Re: Indy 10 und TCP Client...
Ok Danke!
Nun jetzt ließ er fleßig in die StringListe ein... nur er wird nie fertig weil immer was neues reinkommt... Kann man ermitteln wieviele Zeilen empfangen wurden? Gruß Frank |
Re: Indy 10 und TCP Client...
Delphi-Quellcode:
ist wohl das was Du suchst. Du kannst aber auch
StringList.Count
Delphi-Quellcode:
verwenden.
TCPClient.ConnectAndGetAll
|
Re: Indy 10 und TCP Client...
Hi,
ja ich habe einmal verbunden mit dem Server, das klappt auch ganz ausgezeichnet. Im Timer lese ich noch immer mit Readln aus doch logischer wäre alles auszulesen was da ist. Ich bekomme vom Server eine unbestimmte Anzahl von Zeilen... das können mal 3 mal 10 mal 14 sein. Immer wenn ich im Timer da nachschau würde ich dann auch gerne genau die Anzahl auslesen. Oder sollte man da einen extra Thread aufmachen der ständig im Kreis rennt? Gruß Frank |
Re: Indy 10 und TCP Client...
Wie gesagt verwende
Delphi-Quellcode:
Dann bekommts Du alles bis die Remoteseite trennt.
GetConnectAndGetAll
Trennt die RemoteSeite überhaupt nicht, kannst Du bei
Delphi-Quellcode:
ansetzten.
Memo1.Lines.Count
|
Re: Indy 10 und TCP Client...
Danke für die Antworten doch sie führen nicht zum Ziel...
Ich verbinde zu einem Server, logge mich ein, Verbindung wird erst beim PROGRAMMENDE wieder getrennt. Die Funktion IdTCPClient.ConnectAndGetAll trennt die Verbuindung ja wieder das will ich ja nicht. Ich kapier es nicht :wall: es muß doch irgendwie gehen... Weiter am basteln... Frank... |
Re: Indy 10 und TCP Client...
Hi,
sagt mal was muß man machen damit der Client sich ordendlich vom Server abmeldet? Ich mach es mit TCPClient.Disconnect; Nun wenn aber noch Daten im Client lagern, was ich ja nicht weiß, trennt er nicht ordendlich sondern sagt beim nächsten Connect, Allrady connect... Wie macht man es richtig? MfG Frank... |
Re: Indy 10 und TCP Client...
Was willst du programmieren wenn man fragen darf, vieleicht kann ich dir helfen.
P.S. ich kann es aber nicht versprechen das ich dir helfen kann. MfG Carlo |
Re: Indy 10 und TCP Client...
Hi Carlo,
ich kann es ja nochmal beschreiben. Ich möchte mein Programm durch ein Indy TcpClient mit einen Server verbinden. Das klappt! Nun lese ich über ein Timer die Daten aus, das geht auch!
Delphi-Quellcode:
Meine Frage ist nun noch immer wie ich ALLE Daten an dieser Stelle auslesen kann sodas ich mal 3 mal 5 oder mal 10 Zeilen auf einmal gelesen hab, immer also die Anzahl der Zeilen die auch wirklich zur Verfügung stehen.
if IdTCPClient.Connected then begin
with IdTCPClient do begin strResult:=IOHandler.ReadLn; Memo1.Lines.Add(strResult); end; end; end; Es muß doch möglich sein das abzufragen oder nicht? Ich glaube das er mir die "Allready connect" Meldung erzeugt da noch Daten vorhanden sind obwohl ich die Verbindung schon getrennt habe... :( MfG Frank |
Re: Indy 10 und TCP Client...
Hi,
Lösung gefunden!!! :bounce1:
Delphi-Quellcode:
Dank Euch alle, vielleicht braucht das ja auch mal einer...procedure TfrmMain.timTcpTimer(Sender: TObject); begin if not IdTCPClient.Connected then exit; with IdTCPClient do begin while not IOHandler.InputBufferIsEmpty do begin strlTcpRead.Add(IOHandler.Readln) end; while strlTcpRead.Count>0 do begin .... .... // Daten auswerten... .... strlTcpRead.Delete(0); end; end; end; Gruß Frank |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:46 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