Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#8

Re: Dynamischen Record mir sendbuff (TServerSocket) versende

  Alt 24. Mär 2008, 20:07
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.
  Mit Zitat antworten Zitat