我用delphi开发FTP下载的应用,每15分钟从ftp服务器上get文件下来,下载代码如下,基本上能用,唯一的问题就是,大概在晚上22、23点时,会报错,日志跟踪是已经连接上了服务器,但是GET时,会报超时错误,错误信息(Can't build data connection: Connection timed out),为什么都已经连接上了,下载时还会报错呢?是不是因为那个时段ftp服务器比较忙的原因?
if not Self.IdFTP1.Connected then
begin
try
Self.IdFTP1.Host := ftpIp;
Self.IdFTP1.Username := ftpUser;
Self.IdFTP1.Password := ftpPwd;
Self.IdFTP1.TransferType := ftASCII;
Self.IdFTP1.Connect;
Self.IdFTP1.ChangeDir(ftpPath);
Self.SaveLog('成功连接FTP服务器: ' + ftpIp);
try
Self.IdFTP1.Get(strFileName, strDestFileName, True, False); ///偶尔会报错,不知道什么原因
except on Ex: Exception do
Self.SaveLog('下载文件失败: ' + Ex.Message);
end;
except on E: Exception do
begin
Self.IdFTP1.Abort;
Self.IdFTP1.Quit;
Self.IdFTP1.Disconnect;
end;
end;
end;
请高手指教?!
if not Self.IdFTP1.Connected then
begin
try
Self.IdFTP1.Host := ftpIp;
Self.IdFTP1.Username := ftpUser;
Self.IdFTP1.Password := ftpPwd;
Self.IdFTP1.TransferType := ftASCII;
Self.IdFTP1.Connect;
Self.IdFTP1.ChangeDir(ftpPath);
Self.SaveLog('成功连接FTP服务器: ' + ftpIp);
try
Self.IdFTP1.Get(strFileName, strDestFileName, True, False); ///偶尔会报错,不知道什么原因
except on Ex: Exception do
Self.SaveLog('下载文件失败: ' + Ex.Message);
end;
except on E: Exception do
begin
Self.IdFTP1.Abort;
Self.IdFTP1.Quit;
Self.IdFTP1.Disconnect;
end;
end;
end;
请高手指教?!
有时候,第一次get报错(错误信息就是上面我所说的),第二次get就成功了,我想不通:为什么连接超时了,第二次get时,我也没有重新连接,为什么就会成功下载呢?
虽然程序做了控制,情况好多了,但我还是希望大家能多给我点指导。谢谢!