客戶端首先進入被動模式,因為我不知道遠程 FTP 服務器是主動模式還是被動模式。通常,首先進入被動模式。代碼如下:FTPClient ftpClient = new FTPClient();ftpClient.connect(ip,port);ftpClient.login(id,pw);ftpClient.enterLocalPassiveMode();...(occur mode error)(I use try-catch in case an error occurs)(active mode reconnect)...ftpClient.logout();ftpClient.disconnect();ftpClient.connect(ip,port);ftpClient.login(id,pw);ftpClient.enterLocalActiveMode();我想聽聽像這樣處理模式的正確做法。我正在使用 FTPClient (Apache Commons Net)。
1 回答

翻過高山走不出你
TA貢獻1875條經驗 獲得超3個贊
在主動模式 FTP 中,服務器必須打開返回給客戶端的 TCP 連接;除非您的客戶端直接在 Internet 上(沒有防火墻或地址轉發),否則活動模式將不起作用。
相反,被動模式 FTP 不會打開從服務器到客戶端的 TCP 套接字,并且在兩種情況下都可以工作(直接互聯網連接和通過地址轉發的互聯網連接)。
大多數計算機都在防火墻后面并使用地址轉發,因此通常采用被動模式。
添加回答
舉報
0/150
提交
取消