Und auch da musst Du dich ums zusammensammeln selbst kümmern. Und auch bei den Indies musst Du das tun. Sie bieten dir
imho nur die Möglichkeit, einen durch CR/LF terminierten String zu schicken und zu empfangen. DAS ist dann blockierend, weil die 'ReadLn' - Methode eben wartet, bis das CR/LF eingetrudelt ist.
Bei anderen Protokollen (Frame, Length encoding. Checksum etc.) muss man alles selbst machen. Die Routine zum Empfangen sieht im Prinzip so aus
Delphi-Quellcode:
Procedure TMyThing.OnReceive (Sender : TObject; Data: TBuffer; BytesReceived : Integer);
Begin
myBuffer.Append (Data, BytesReceived);
While myBuffer.ContainsFullMessage do
ProcessMessage(myBuffer.ExtractMessage);
End;