Moin zusammen,
@jaenicke: Also das ist mir schon generell klar, wie ein grober einfacher Ablauf wäre. Mir ging es eigentlich eher darum, ob
Indy bzgl. Line-Ending nicht schon etwas mitliefert? Ich will das ganze ja auch in einem Thread ausgelagert laufen lassen und darauf war meine Frage eigentlich abgezielt, wie es dann konkret mit
Indy aussehen könnte.
Ich habe jetzt folgendes Konstrukt mit
Indy umgesetzt und ich werde damit weitere Tests durchführen:
Server-Senden:
Server hat seinen String (Daten) und hängt am Ende immer fixe 4 Sonderzeichen an.
Das ganze wird in TIdBytes konvertiert und mit .Write verschickt.
Client-Empfang:
Der Client prüft, ob sein InputBuffer nicht leer ist und liest mittels
TCPClient.IOHandler.ReadLn('hier stehen meine 4 fixen Sonderzeichen');
die Daten ein.
Das heißt, der Client liest den InputBuffer immer bis zum Terminator und liefert mir dann erst den Datenstrom. Damit habe ich, Stand jetzt, immer ein Telegram (egal wie lang dieses ist).
Client-Senden:
Client hat seinen String (Daten) und hängt am Ende immer die gleichen fixen 4 Sonderzeichen an.
Das ganze wird in TIdBytes konvertiert und mit .Write verschickt.
Server-Empfang:
Dieser hat sein Execute-Event und prüft darin ebenfalls ob sein InputBuffer nicht leer ist und liest mittels
AContext.Connection.IOHandler.ReadLn('hier stehen meine 4 fixen Sonderzeichen');
die Daten ein.
Das heißt, der Server liest den InputBuffer immer bis zum Terminator und liefert mir dann erst den Datenstrom. Damit habe ich, Stand jetzt, immer ein Telegram (egal wie lang dieses ist).
Scheint bisher zu funktionieren aber wie gesagt, damit werde ich weiter testen