Einzelnen Beitrag anzeigen

Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.337 Beiträge
 
Delphi 11 Alexandria
 
#12

AW: Indy 10 TCP Client Server -> MemoryStreams übertragen

  Alt 23. Okt 2012, 23:24
So, ich bin doch wieder bei Indy. Das erscheint mir komfortabler und das Problem mit der GUI-Syncronisation besteht bei der flachen Variante ja auch.

Die Übertragung mit dem Ende-Kennzeichen ist gelöst.
Die Lösung habe ich hier gefunden: http://stackoverflow.com/questions/1...nd-line-breaks
-> IdTCPClient.IOHandler.Write Ln (S + #0);
Man darf beim Schreiben nicht WriteLn verwenden, da sonst ein #13#10 angehängt wird. Beim Lesen wird dann bis zum Endekennzeichen gelesen und der Zeilenumbruch verbleibt im Puffer. Dadurch hakt im weiteren Verlauf die Kommunikation.
In gewisser Weise macht das Sinn.

Die Übertragung per Stream funktioniert grundsätzlich auch - ABER!
Die Größe des eingehenden Streams kann ich noch nicht ermitteln. Im Test kürze ich den Steam jetzt auf 14 Byte und lese 14 Byte aus. So ist erkennbar, dass die Übertragung perfekt funktioniert.
Jetzt müsste ich noch eine Möglichkeit finden, InputStream.Size vor dem Lesen des Streams zu ermitteln. Dann wären alle Übertragungsvarianten fertig.


Die syncronisierte Ausgabe in die Memos werde ich dann in einem Tread versuchen, der dazu auf die Syncronisation mit dem MainThread wartet.
Angehängte Dateien
Dateityp: zip Indy10TCPStreamTest.zip (704,8 KB, 20x aufgerufen)
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat