Thema: Delphi Stream per TCP senden

Einzelnen Beitrag anzeigen

Benutzerbild von XXcD
XXcD

Registriert seit: 19. Sep 2006
581 Beiträge
 
Delphi 2007 Professional
 
#1

Stream per TCP senden

  Alt 23. Apr 2010, 15:34
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;
  Mit Zitat antworten Zitat