Wenn du mehr als 255-stellige Strings versenden möchtest, dann würde ich nicht mit Records arbeiten. Du kannst sie einzeln oder auch mehrere auf einmal versenden:
Delphi-Quellcode:
function BufferAddString(var buffer: string; const s: string): Cardinal;
var
index, bytes: Cardinal;
begin
index := Succ(Length(buffer));
bytes := Length(s);
SetLength(buffer, 3 + index + bytes);
Move(bytes, buffer[index], 4);
Move(s[1], buffer[index + 4], bytes);
Result := Length(buffer);
end;
//
var
buf: string;
n: Cardinal;
begin
buf := '';
n := AddString(buf, 'COMMAND');
n := AddString(buf, 'TEST');
BufferSend(fClient.Socket.SendBuf(buf[1], n);
end;
Ich würde mir noch eine Funktion BufferSend() schreiben, der ich den Socket und den Buffer übergeben kann.