![]() |
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:
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
with IdTCPClient do
begin IOHandler.CheckForDataOnSource(500); if (not IOHandler.InputBufferIsEmpty) then empfangenerString:= IOHandler.InputBufferAsString; end; 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. |
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:
empfange ich wohl nur einen Teil des Puffers, und nicht den kompletten Inhalt. Mit welcher
empfangenerString:= IOHandler.InputBufferAsString;
property deklariere die Größe des Datenpakets das ich mit "InputBufferAsString" auslese? Kann mir das jemand sagen? Gruß Sascha |
AW: TIdTCPClient (Indy10)
Code:
Danke. :lol:
IdTCPClient.IOHandler.RecvBufferSize
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:02 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