ok, ich glaube es verstanden zu haben
Delphi-Quellcode:
while AContext.Connection.IOHandler.InputBuffer.Size > 0 do
begin
SetLength(Buffer, AContext.Connection.IOHandler.InputBuffer.Size);
AContext.Connection.IOHandler.ReadBytes(Buffer, Length(Buffer), False);
FDataQueue.Enqueue(Buffer);
end;
Sleep(1);
Durch das Sleep(1) funktioniert es auch (dass die CPU Auslastung nicht ansteigt), wenn kein Empfang mehr stattfindet.
Nur ist mir nicht klar, warum der Client 20 Telegramme á 61000 Byte abschickt und der Server 38 Stück empfängt wobei die meisten 32768 Byte lang sind und am Ende ein kürzeres. Warum nicht auch 20 Telegramme?