Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   TIdTCPClient (Indy10) (https://www.delphipraxis.net/155576-tidtcpclient-indy10.html)

wisher 29. Okt 2010 15:50

TIdTCPClient (Indy10)
 
Hallo,

es gibt anscheinend 100 verschiedene Möglichkeiten über den Indy 10 TIdTCPClient Daten zu empfangen.
Kurze Problembeschreibung: Ich habe einen TCP Server (Fremdprodukt) von dem möchte ich mit meinem Programm Daten auslesen.

Erster Ansatz war wie folgt:

Code:
      with IdTCPClient do
      begin
         IOHandler.CheckForDataOnSource(500);
         if (not IOHandler.InputBufferIsEmpty) then
            empfangenerString:= IOHandler.InputBufferAsString;
      end;
Funktionierte auch ganz gut, nur merkte ich, dass die Größe des empfangenen Textes immer gleich groß ist, egal wie lange ich damit warte die Daten auszulesen. Was für mich bedeutet, dass da nicht
gepuffert wird. Es gehen also Daten verloren.

Wie empfange ich also am geschicktesten Daten über eine Socketverbindung, ohne dass Daten verloren gehen?

Viele Grüße
Sascha.

wisher 1. Nov 2010 13:52

AW: TIdTCPClient (Indy10)
 
Hallo,

hab mich geirrt. Es scheinen keine Daten verloren zu gehen. Wenn ich das Senden des TCP-Servers,
stoppe, braucht der Client trotzdem noch Zeit um die Vorhandenen Datenpakete, die im Puffer liegen abzuarbeiten.

Was ich aber nicht ganz verstehe, mit
Code:
 empfangenerString:= IOHandler.InputBufferAsString;
empfange ich wohl nur einen Teil des Puffers, und nicht den kompletten Inhalt. Mit welcher
property deklariere die Größe des Datenpakets das ich mit "InputBufferAsString" auslese?
Kann mir das jemand sagen?

Gruß
Sascha

wisher 1. Nov 2010 14:05

AW: TIdTCPClient (Indy10)
 
Code:
IdTCPClient.IOHandler.RecvBufferSize
Danke. :lol:


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:46 Uhr.

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