Einzelnen Beitrag anzeigen

Benutzerbild von DataCool
DataCool

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

Re: Stream mit Indy versenden

  Alt 4. Mär 2004, 16:49
Hi,

irgentwie finde ich das absolut schwachsinnig was Du da gerade versuchst.

Entweder Du willst nur einen Zahlenwert verschicken, dann arbeitest Du mit WriteInteger bzw. ReadInteger(gibts auch für SmallInt und Cardinal) oder Du verschickst wirklich ein Objekt in einem Buffer(z.B. eine DAtei).

Wenn Du nur eine Zahl verschicken willst :

Code:
//Server :
Var iMunition : Longint;
begin
  iMunition := AThread.Connection.ReadInteger;
end;

//Client
Client.WriteInteger(Car.Munition);
// Wenn Du ein Objekt oder einen Stream verschicken willst :

Code:
//Server :
Var ms : TMemoryStream;
begin
  ms := TMemoryStream.Create;
  try
    try
      AThread.Connection.ReadStream(ms);
    except
      ms.clear;
    end;
    if ms.Size > 0 then
      ms.SavetoFile('C:\TransferedFile.txt');
  finally
    ms.free; // Speicher wieder freigeben
  end;
end;


//Client :
Var ms : TMemoryStream;
begin
  ms := TMemoryStream.Create;
  try
    // Memory-Stream mit den Daten füllen die verschickt werden sollen, hier als Bsp. eine Datei
    ms.loadFromFile('c:\Autoexec.bat');
    ms.Position := 0; // Zur Sicherheit auf Anfang setzen
    Client.openwriteBuffer;
    Client.writeStream(ms);
    Client.CloseWriteBuffer;
  finally
    ms.free; // Speicher wieder freigeben
  end;
end;
Ich hoffe ich konnte damit, einige Fragen kären,

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