我寫了一個從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;
uj5u.com熱心網友回復:
用ics來做就可以了,兼容性問題,也碰到過,沒深究uj5u.com熱心網友回復:
試試idFTP1.List(TS, '', true);uj5u.com熱心網友回復:
uj5u.com熱心網友回復:
捕獲一下例外uj5u.com熱心網友回復:
ICS是什么?idFTP1.List(TS, '', true);估計也不行,因為后兩個引數默認就是這樣的
后來我用XE8重新編輯的程式,客戶測驗就說可以了,應該是低版本的控制元件代碼有BUG
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/50797.html
標籤:網絡通信/分布式開發
