![]() |
Indy SendStream - seltsame Zeichen im Text
Hey,
ich habe ein Client und ein Serverprogramm. Beim Clientprogramm läuft ein Thread, welcher mittels ReadStream(SS) immer weiter prüft, ob Daten ankommen. Dabei ist SS ein TStringStream. Beim Serverprogramm wird im OnExecute Ereigniss mit ReadStream(SS) Daten ausgelesen. Hierbei kommt es zu folgendem Problem: Der Client sendet mittels SendStream(SS, 0, true) einen StringStream zum Server. Beim Server wird das OnExecute Ereigniss ausgelöst und die Daten auch wunderbar empfangen. Allerdings kommt es Zeitweise vor, dass seltsame Zeichen zwischen meinem Text landen. Dies passiert in unregelmäßigen Abständen. So sieht der Text an, der z.b. beim Server ankommt:
Code:
Hierbei sind sämtliche #0, #9, #2, etc und alle "reingebauten" Strings, wie direkt am Anfang nicht von mir .. woran kann das liegen? Vielleicht, weil ich SendStream im Thread aufrufe?
'ž°'#0'*~Auth~'#0'|~12345607890'#9'H'#0'À/2'#0'aC3nhDyn'#0'utmlb/2P'#0'VCwuAe/i'#0'IsvFsxnm'#0'LTKXF8Gz
'#2'e'#0'Zbaed29'#0'1c3ffde5'#0'cad9b3c7'#0'8bf3a9f5'#2'a'#1'DTestSe'#$10'rver'#0#$18'FLO'#$10'RIAN'#1#9'lor' #0'ian Bern'#2'd'#1#$90'~|' Gruß Florian |
Re: Indy SendStream - seltsame Zeichen im Text
Guten Morgen Florian.
Du solltest zuerst überprüfen, ob die empfangenen Daten nicht mit den versendeten Daten identisch sind. Wie entstehen die Daten? Wie gelangen sie in den StringStream? Welche Arten der Zwischenspeicherung (z.B. array of string, StringList) verwendest du? Grüße vom marabu |
Re: Indy SendStream - seltsame Zeichen im Text
Also die versendeten Daten sind nicht identisch. Bevor ich die Daten der SendStream Funktion übergebe sind sie genau so, wie ich sie haben will.
In den StringStream gelangen sie über die Create Methode des Streams. Zwischenspeicherung verwende ich keine. Wenn ein Bestimmter Befehl beim Client eingeht sendet dieser unmittelbar das benannte Datenpaket zurück. Dabei kommt es vor, dass beim Server nur Müll ankommt :( |
Re: Indy SendStream - seltsame Zeichen im Text
woher weißt du das die daten vor dem Senden im Stream genau so sind wie du sie haben willst? kannst du nicht mal etwas quelltext zeigen wie du sie in den Stream packst und verschickst? und vor allem wie du sie dann wieder liest.
|
Re: Indy SendStream - seltsame Zeichen im Text
Ich weiß das, weil ich den Ausdruck im Debugger überwacht habe. Meine Funktion zum Senden:
Delphi-Quellcode:
Lesen mache ich einfach mit einem simplen Aufruf von ReadStream(SS). Die Daten sind dann in SS.DataStream. Komisch ist halt, dass sie mal korrekt ankommen und mal nicht ..
procedure SendString(Client: TIdTCPClient; Value: String);
var SS: TStringStream; begin SS := TStringStream.Create(Value); try Client.IOHandler.Write(SS, 0, true); finally SS.Free; end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:59 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