![]() |
[Indy10] Binärdaten übertragen
Hi,
ich möchte von einem IdTCPClient einen mit CompressBuf komprimiereten String vom Server schicken. Beim Server funktioniert leider ReadLn nicht, bzw ReadLn ließt immer nur einen Teil des Strings aus. Ich vermute mal, weil Sonderzeichen enthalten sind. Kann ich diesen String anders senden? Eventuell über SendBuffer? Allerdings sollte der String beliebig lang sein drüfen. Florian |
Re: [Indy10] Binärdaten übertragen
Hallo Florian,
du könntest auf der Client-Seite Write() und auf der Server-Seite ReadBytes() bzw. ReadStream() verwenden. Freundliche Grüße |
Re: [Indy10] Binärdaten übertragen
Hi,
ich habe jetzt mal die Methode mit ReadStream implementiert. Dazu verwende ich den VCLStream von den Indys. Ist diese Methode genauso Rechenintensiv, wie das senden von normalen Strings, oder benötigt das eine höhere Rechenleistung? Weil in meinem Projekt hatte ich zweitweise eine CPU Auslastung von 50% Prozent. Und die ging nur nicht höher, weil das Programm nur einen der 2 Kerne nutzt. Florian |
Re: [Indy10] Binärdaten übertragen
Keine Ahnung. Die Volllast wurde vermutlich dadurch erzeugt, dass irgendwo innerhalb von ReadLn() ein busy wait loop verwendet wurde, während auf das EOLN gewartet wurde. Oft arbeitet die Empfangsseite wirtschaftlicher, wenn du vor jeder Sendung die Übertragungsmenge avisierst.
|
Re: [Indy10] Binärdaten übertragen
Ok, danke für deine Hilfe.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:44 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