AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Indy SendStream - seltsame Zeichen im Text
Thema durchsuchen
Ansicht
Themen-Optionen

Indy SendStream - seltsame Zeichen im Text

Ein Thema von Zacherl · begonnen am 10. Jun 2007 · letzter Beitrag vom 10. Jun 2007
Antwort Antwort
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#1

Indy SendStream - seltsame Zeichen im Text

  Alt 10. Jun 2007, 01:51
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:
'ž°'#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'~|'
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?

Gruß Florian
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: Indy SendStream - seltsame Zeichen im Text

  Alt 10. Jun 2007, 09:31
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
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#3

Re: Indy SendStream - seltsame Zeichen im Text

  Alt 10. Jun 2007, 14:03
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
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Indy SendStream - seltsame Zeichen im Text

  Alt 10. Jun 2007, 14:09
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.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#5

Re: Indy SendStream - seltsame Zeichen im Text

  Alt 10. Jun 2007, 15:50
Ich weiß das, weil ich den Ausdruck im Debugger überwacht habe. Meine Funktion zum Senden:

Delphi-Quellcode:
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;
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 ..
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:42 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