Hallo,
habe gerade ein kleines Problem und finde den fehler nicht.
Vielleicht habe ich ja irgendwas übersehen also der Stream wird gefüllt gesendet, aber beim Client kommt nicht wirklich etwas an.
Ich speicher zum testen die Daten in eine Textdatei und das was ankommt ist leer.
Delphi-Quellcode:
procedure TForm5.IdTCPServer1Connect(AContext: TIdContext);
var
Stream: TMemoryStream;
pktype, pksubtype: integer;
Data: string;
Len: Longint;
begin
pktype:=22;
pksubtype:=0;
Data:='Test1123';
Stream:= TMemoryStream.Create;
try
Stream.Write(pktype, SizeOf(pktype));
Stream.Write(pksubtype, SizeOf(pksubtype));
Len := Length(Data);
Stream.Write(Len, SizeOf(Len));
Stream.Write(PChar(Data)^, Len);
AContext.Connection.IOHandler.Write(Stream);
Stream.SaveToFile('C:\test.txt');
finally
Stream.Free;
end;
end;
Delphi-Quellcode:
procedure TForm5.Timer1Timer(Sender: TObject);
var
ReadStream: TMemoryStream;
begin
if IdTCPClient1.Connected then
begin
try
ReadStream:= TMemoryStream.Create;
try
IdTCPClient1.IOHandler.ReadStream(ReadStream, -1, false);
ReadStream.Position:=0;
ReadStream.SaveToFile('C:\test2.txt');
Except
//ShowError('Verbindung unterbrochen!');
end;
finally
ReadStream.Free;
end;
end
else
begin
Timer1.Enabled:=false;
ShowError('Verbindung unterbrochen!');
end;
end;