Delphi-Quellcode:
ActClient^.ReceiveStream.Seek(0,soFromBeginning);
ActClient^.ReceiveStream.Read(cReceiveLength,SizeOf(Cardinal));
ActClient^.ReceiveStream.Read(wCommandID,SizeOf(Word));
ActClient^.ReceiveStream.Seek(SizeOf(Word)+SizeOf(Cardinal), soFromBeginning);
ActClient^.DataStream.CopyFrom(ActClient^.ReceiveStream,ActClient^.ReceiveStream.Size-(SizeOf(Word)+SizeOf(Cardinal)));
ActClient^.DataStream.Position := 0;
Wie du sehen kannst, stelle ich die Position des ReceiveStream vorher auf die gewünschte Position, sodass niemals der zu kopierende Bereich fehlerhaft sein kann(zu groß oder zu klein).