简单的Delphi Firemonkey TidFTP测试下载在'开始FTP传输'时挂起

时间:2014-09-20 15:37:22

标签: delphi ftp firemonkey indy

我正在使用Delphi XE7中的多设备应用程序使用TidFTP进行简单的FTP下载测试。我的目标是稍后在我的应用程序中使用此功能之前在Android中工作,但是现在,我在Windows 32位中运行此测试。问题是我的FTP状态文本(如备忘录所示)'解析主机'连接','建立连接',然后'启动FTP传输'但挂起来的地方永远不会从Get返回,直到'读取超时'。第一次弹出一个我接受的防火墙警告,但是重试会做同样的事情。我已经下载并构建了Indy FTP client demo,它运行但完全相同。

我在虚拟机中运行,所以我已经尝试在主机上运行我的EXE(演示和我的简单项目),但是我遇到了同样的问题,但是,#39; WinSCP赋予' FTP工具可以正常使用相同的登录和端口21,允许我查看我的源文件。

此处我的代码主要来自this SO question,以便在我的网站根目录中获取一个小文本文件:

procedure TForm4.Button1Click(Sender: TObject);
begin
  IdFTP1.Host := 'www.mysite.co.uk';
  IdFTP1.Username := 'username';
  IdFTP1.Password := 'password';
  IdFtp1.Passive := false;
  IdFtp1.ConnectTimeout := 1000;
  IdFtp1.Connect();
  IdFtp1.BeginWork(wmRead);
  IdFTP1.ChangeDir( '/' );
  IdFTP1.Get( 'hope.txt', 'c:\scratch\wow.txt', True );
  IdFtp1.Disconnect();
end;

procedure TForm4.IdFTP1Status(ASender: TObject; const AStatus: TIdStatus;
  const AStatusText: string);
begin
  Memo1.Lines.Add( AStatusText );
  Application.ProcessMessages;
end;

我并不为Application.ProcessMessages感到自豪,但我稍后会用一个帖子替换它,无论如何似乎没有' TidAntiFreeze'在Android框架中(虽然放在带有TidAntiFreeze的VCL应用程序表单中的相同代码也表现相同)。

感激地收到任何评论。

0 个答案:

没有答案