Einzelnen Beitrag anzeigen

Benutzerbild von DataCool
DataCool

Registriert seit: 10. Feb 2003
Ort: Lingen
909 Beiträge
 
Delphi 10.3 Rio
 
#3

Re: Indy Server -> Client Stream

  Alt 21. Jan 2010, 10:54
Hi schwa226,

das sollte aber auch eleganter/kürzer gehen.
Wie schickst Du den Stream den beim Server zum Client ? Gestückelt oder in einem Stück ?
Meiner Meinung ist es am besten und einfachsten so:

Delphi-Quellcode:
Var ms : TMemoryStream;
begin
  // ...
  AContext.Connection.Socket.Write(ms,0,true); // <--- das true sorgt dafür das die Größe des Stream am Anfang geschrieben wird
  // ...
Im Client würde ich dann wie folgt vorgehen :
Delphi-Quellcode:
Var ms : TMemoryStream;
begin
  // ...
  if not myTcpClient.Socket.InputBufferIsEmpty then

    myTcpClient.Socket.ReadStream(ms); // = myTcpClient.Socket.ReadStream(ms, -1, false)
    // When AByteCount contains the value -1, the amount of data to read from the IOHandler is determined either by reading the byte count from the IOHandler
    // or by reading data until the connection is closed by the peer.
Das sollte absolut ausreichen, So funktioniert es auf jeden FAll bei in einigen Anwendungen

Greetz Data
Der Horizont vieler Menschen ist ein Kreis mit Radius Null, und das nennen sie ihren Standpunkt.
  Mit Zitat antworten Zitat