问题现象:
1 连接FTP报错误:连接超时。
2 ConnectTimeout 填写 0 30 6000 等都无效
3 Passive true false 没有解决问题
4 使用其他FTP工具。开始无法连接ftp服务。后来检查资料 feat 设置修改解决问题。
5 使用我开发的FTP工具连接FTP,连接其他测试FTP服务无问题。就这个客户FTP有此问题
6 以下连接ftp的代码function ConnectFTP(FTPConfig: TFTPConfig): string;
begin
result := ''; //默认连接成功
self.IdFTP.Disconnect;
with self.IdFTP do
begin
Host := FTPConfig.Host;
Port := FTPConfig.Port;
Username := FTPConfig.Username;
Password := FTPConfig.Password;
ConnectTimeout := FTPConfig.Timeout;
Passive := FTPConfig.Passive;
end;
try
IdFTP.Connect;
if not IdFTP.Connected then
result :=
'无法连接此FTP:' +
'主机' + IdFTP.Host +
'端口' + IntToStr(IdFTP.Port) +
'用户名' + IdFTP.Username +
'密码' + IdFTP.Password +
'超时时间' + IntToStr(IdFTP.ConnectTimeout) +
'模式' + booltostr(IdFTP.Passive);
except on e: exception do
result := '无法连接此FTP:' +
'主机' + IdFTP.Host +
'端口' + IntToStr(IdFTP.Port) +
'用户名' + IdFTP.Username +
'密码' + IdFTP.Password +
'超时时间' + IntToStr(IdFTP.ConnectTimeout) +
'模式' + booltostr(IdFTP.Passive) +
'原因' + e.Message;
end;
end;
1 连接FTP报错误:连接超时。
2 ConnectTimeout 填写 0 30 6000 等都无效
3 Passive true false 没有解决问题
4 使用其他FTP工具。开始无法连接ftp服务。后来检查资料 feat 设置修改解决问题。
5 使用我开发的FTP工具连接FTP,连接其他测试FTP服务无问题。就这个客户FTP有此问题
6 以下连接ftp的代码function ConnectFTP(FTPConfig: TFTPConfig): string;
begin
result := ''; //默认连接成功
self.IdFTP.Disconnect;
with self.IdFTP do
begin
Host := FTPConfig.Host;
Port := FTPConfig.Port;
Username := FTPConfig.Username;
Password := FTPConfig.Password;
ConnectTimeout := FTPConfig.Timeout;
Passive := FTPConfig.Passive;
end;
try
IdFTP.Connect;
if not IdFTP.Connected then
result :=
'无法连接此FTP:' +
'主机' + IdFTP.Host +
'端口' + IntToStr(IdFTP.Port) +
'用户名' + IdFTP.Username +
'密码' + IdFTP.Password +
'超时时间' + IntToStr(IdFTP.ConnectTimeout) +
'模式' + booltostr(IdFTP.Passive);
except on e: exception do
result := '无法连接此FTP:' +
'主机' + IdFTP.Host +
'端口' + IntToStr(IdFTP.Port) +
'用户名' + IdFTP.Username +
'密码' + IdFTP.Password +
'超时时间' + IntToStr(IdFTP.ConnectTimeout) +
'模式' + booltostr(IdFTP.Passive) +
'原因' + e.Message;
end;
end;
推荐用ICS组件,好用,稳定,支持异步模式
吧delphi2007 的indy10 降到indy9 ok