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.