![]() |
Probleme mit TIdTrivialFtp
Hallo zusammen,
ich habe etwas Probleme mit dem TrivialFtp von Indy. Im Prinzip möchte ich vom Client aus einfach eine Datei herunterladen. Im Client habe ich das Ganze auf einen Button gelegt, wobei FtpClient halt die TIdTrivialFTP-Komponente ist:
Delphi-Quellcode:
Im Serverprogramm gibt es ein FtpServer vom Typ TIdTrivialFtpServer mit den beiden nachfolgenden Events:
try
FtpClient.Connect; St:=TFileStream.Create(Datapath+'daten.txt',fmCreate); FtpClient.Get('daten.txt',ST); finally if Assigned(ST) then FreeAndNil(ST); if FtpClient.Connected then FtpClient.Disconnect; end;
Delphi-Quellcode:
Das Problem: im Client komme ich aus dem Get nicht wieder und laufe dann auf ein Timeout. Das Connect geht problemlos klar.
procedure TFormMain.FtpServerReadFile(Sender: TObject;
var FileName: String; const PeerInfo: TPeerInfo; var GrantAccess: Boolean; var AStream: TStream; var FreeStreamOnComplete: Boolean); var FS:TFileStream; begin FreeStreamOnComplete:=TRUE; try // Verzeichnis umleiten auf das Datenverzeichnis, kein anderes Verzeichnis akzeptieren Filename:=Datapath+ExtractFilename(Filename); if FileExists(Filename) then begin FS:=TFileStream.Create(Filename,fmOpenRead or fmShareExclusive); AStream:=FS; GrantAccess:=TRUE; end else GrantAccess:=FALSE; except GrantAccess:=FALSE; if Assigned(FS) then FreeAndNil(FS); end; end; procedure TFormMain.FtpServerTransferComplete(Sender: TObject; const Success: Boolean; const PeerInfo: TPeerInfo; var AStream: TStream; const WriteOperation: Boolean); begin try if Assigned(AStream) then FreeAndNil(AStream); except end; end; Ich habe dann auf der Serverseite den Debugger laufen lassen. Die Dateianfrage kommt dort an, die Datei wird gefunden und die vom Stream angegebene Dateigröße stimmt mit 30417 Byte auch. Auch das TransferComplete-Event auf der Serverseite wird aufgerufen. Daher gehe ich davon aus, dass auf dem Server alles glatt geht - nur im Client kommt halt nichts an. Hat jemand eine Idee, wo ich noch suchen kann oder was ich falsch mache? Gruß easy |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:14 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz