IdFTP.List方法在有的网格下可以用,有的网络下报错,是何原因?

liuc1975 2017-05-17 09:21:02
我写了一个从FTP服务器上下载视频文件到本地播放的程序,在我公司的网络调试的好好的,去了客户的网络环境(WIFI)就不能下载,跟踪了一下发现是IdFTP1.List(TS);报错,错误提示如下
command not understood.
但是在Windows的文件管理器里是可以打开FTP服务器,可以看到文件,也可以把文件手工拷下来。

然后我换了用我的手机4G做热点WIFI,电脑连上去就可以下载,又换了客户的有线网络也是可以下载,就是客户的WIFI不行,客户的网管也说不清楚是在网络的什么地方做了设置,哪位知道这是什么原因?

开发环境是Delphi7,标准的Indy控件,没做过更新升级,简代后的代码示例如下:
procedure TForm1.Button1Click(Sender: TObject);
var
TS: TStrings;
begin
IdFTP1.Host := '122.231.166.106';
IdFTP1.Port := 21;
IdFTP1.Username := 'sp';
IdFTP1.Password := '';
IdFTP1.Connect; 可以连接
idFTP1.ChangeDir('sp'); 也可以改变目录
TS := TStringList.Create;
IdFTP1.List(TS); 报错command not understood.
Memo1.Lines.Assign(TS);
TS.Free;
end;
...全文
1337 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
liuc1975 2017-08-25
  • 打赏
  • 举报
回复
ICS是什么? idFTP1.List(TS, '', true);估计也不行,因为后两个参数默认就是这样的 后来我用XE8重新编辑的程序,客户测试就说可以了,应该是低版本的控件代码有BUG
shuihan20e 2017-07-12
  • 打赏
  • 举报
回复
捕获一下异常
bwsoft1 2017-07-11
  • 打赏
  • 举报
回复
用ics来做就可以了,兼容性问题,也碰到过,没深究
hongss 2017-07-11
  • 打赏
  • 举报
回复
引用 2 楼 DelphiGuy 的回复:
试试idFTP1.List(TS, '', true);
  • 打赏
  • 举报
回复
试试idFTP1.List(TS, '', true);

1,593

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧