在XE5 Android应用程序中的IdFTP,是一个神奇的数字?

时间:2013-10-22 05:59:38

标签: android delphi ftp indy delphi-xe5

我有一个Delphi XE5 Android应用程序,它连接到在PC上运行的Indy FTP服务器(服务器是Indy 10 IdFTPServer演示)。 我FTP。从服务器获取相同的文件(每2秒)并在我的Android设备上的标签中显示内容(24个字符)。它总是工作16次,然后Android应用程序退出。 从服务器的角度来看,它报告“10054,由同行重置连接”

以下是代码:

procedure TForm3.FetchTimerTimer(Sender: TObject);  
var  
    str : string;  
begin
    inc(FetchCnt);    
    aStream.Position := 0;  
    FTP.Get('Time1.txt', aStream);  
    aStream.Position := 0;  
    str := aStream.ReadString(255);  
    CmdLabel.text := inttostr(FetchCnt) + ') ' + str;  
end;  

16是一个神奇的数字吗?按照预期工作,直到第16个FTP.Get 想法?

1 个答案:

答案 0 :(得分:0)

TIdFTP中没有任何内容限制您可以通过同一连接执行的传输次数。您看到的错误意味着服务器端的连接丢失。也许这个演示只允许16次传输,我不知道(我不熟悉你提到的演示)。或者可能只有有限数量的端口可用。您是在主动或被动模式下进行转接吗?我建议你在你的客户端和服务器之间放一个数据包嗅探器,看看网络上究竟发生了什么。