-> Delphi XE Prof,
Indy 10
Hintergrund: Ich möchte StringListen zwischen Client und Server übertragen.
Die Strings können SEHR lange Zeilen enthalten, da ich u.U. Bilddaten als Base64 übertragen will.
Teilweise kann ich bereits Daten übertragen. Ich möchte jedoch unterschiedliche Varianten austesten und habe dazu mal ein Testprojekt erstellt.
Das Projekt (XE) ist angehängt.
Die Problembeschreibung ist schwierig, da die Probleme bei unterschiedlichen Varianten in verschiedenen Formen auftreten.
Daher habe ich dies mal als Video erstellt:
http://youtu.be/d852TASq34c
Im wesentlichen gib es folgende Fragen:
- Wie kann ich die übertragenen Daten in Memos schreiben, ohne dass es Syncronisationsprobleme gibt? (Bei manchen Versuchen hat es funktioniert, aber nicht immer.)
- Wie funktioniert die Übertragung (ReadLn und WriteLn) mit einem Endekennzeichen (#0 oder '|') in beide Richtungen?
- Wie funktioniert die Übertragung über Streams in beide Richtungen?
Ich habe viel im Netz gesucht, bin aber bisher nicht zurecht gekommen.
Vielleicht können wir das Projekt mal so ausbauen, dass wir hier ein komplettes Demo für die unterschiedlichen Übertragungsformen haben...
Zur Umschaltung der Übertragungsform habe ich eine Compilerkonstante eingerichtet:
Delphi-Quellcode:
const
CompileModeFoot = 0;
CompileModeLinesChanged = 1;
CompileModeLinesEnd = 2;
CompileModeStream = 3;
CompileMode = CompileModeStream; // <- hier auswählen
Da die auftretenden Probleme recht komplexe Zusammenhänge haben, ist natürlich auch das Demoprojekt und die Fehlerbeschreibung etwas umfangreicher.
Wäre nett, wenn sich mal jemand die Zeit nehmen könnte...