FTP被動模式連線及超時問題解決

2021-07-02 17:24:59 字數 494 閱讀 8307

問題:

1、ftpclient.listfiles()或者ftpclient.retrievefile()方法時,就停止在那裡,什麼反應都沒有,出現假死狀態。

2、連線ftp伺服器,長時間進行資料操作時,超時自動斷開。

分析:

1、因為ftp server可能每次開啟不同的埠來傳輸資料,但是在linux上,由於安全限制,可能某些埠沒有開啟,所以就出現阻塞。

2、ftp的埠號20、21乙個是資料埠,乙個是控制埠,控制埠一般為21,而資料埠不一定是20,這和ftp的應用模式有關,如果是主動模式,應該為20,如果為被動模式,由伺服器端和客戶端協商而定。21控制埠啟用後,資料埠如果長時間進行資料操作,到達伺服器設定的超時時間,自動斷開連線。

解決方法:

client.sendcommand("pwd");
問題解決!

FTP主動模式及被動模式

起初,ftp並不是應用於ip網路上的協議,而是arpanet網路中計算機間的檔案傳輸協議,arpanet是美國國防部組建的老網路,於1960 1980年使用。在那時,ftp的主要功能是在主機間高速可靠地傳輸檔案。目前ftp仍然保持其可靠性,即使在今天,它還允許檔案遠端訪問。這使得使用者可以在某個系統...

FTP主動模式及被動模式

ftp主動模式及被動模式 ftp的特殊性 大多數的tcp服務是使用單個的連線,一般是客戶向伺服器的乙個周知埠發起連線,然後使用這個連線進行通訊。但是,ftp協議卻有所不同,它使用雙向的多個連線,而且使用的埠很難預計。一般,ftp連線包括 乙個控制連線 control connection 這個連線用...

FTP主動模式及被動模式

ftp的特殊性 大多數的tcp服務是使用單個的連線,一般是客戶向伺服器的乙個周知埠發起連線,然後使用這個連線進行通訊。但是,ftp協議卻有所不同,它使用雙向的多個連線,而且使用的埠很難預計。一般,ftp連線包括 乙個控制連線 control connection 這個連線用於傳遞客戶端的命令和伺服器...