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