2015-05-27 44 views
1

我想連接到一個Android應用程序的FTP服務器,我相信我陷入了一個無限循環,但無法理解爲什麼。我使用的庫是Apache Comomns網絡。Android 4G與4G的FTP

我在清單中的網絡權限:

<uses-permission android:name="android.permission.INTERNET"/> 

我也連接到FTP在的AsyncTask。

這裏本該是上班的樣本代碼:

// I have other values when I test it of course 
    FTPClient ftpClient = new FTPClient(); 
    ftpClient.connect("111.111.111.111"); // It stops working here when in 4G 
    ftpClient.login("user", "mdp"); 
    ftpClient.changeWorkingDirectory("directory"); 
    ftpClient.setFileType(FTP.BINARY_FILE_TYPE); 
    ftpClient.enterLocalPassiveMode(); 
    ftpClient.logout(); 
    ftpClient.disconnect(); 

它可以在WiFi(和我的實際應用中也工作了WiFi),但是當我用我的4G(或3G)似乎循環在我試圖永遠連接()的線路上。

我試圖瞭解這背後有什麼,但對我而言並不清楚。

如何使用4G連接到我的FTP?

任何幫助,將不勝感激。

回答

2

這聽起來像您的網絡運營商可能會阻止FTP端口。

要測試此功能,您可以嘗試將ftp發送到移動設備上瀏覽器的同一網站 - 如果它可以正常工作,那麼它會指向您的應用中的問題。

如果不工作,那麼嘗試使用正常的FTP站點 - Tele2的主機例如測試網站(也有很多其他的開放FTP站點,如果你做一個快速搜索):

如果您無法通過4G通過移動設備訪問此文件,那麼它很可能是您的運營商擁有FTP,並且您應該聯繫他們以瞭解爲什麼以及如何刪除該文件塊。

+0

非常感謝!我沒有想到這樣的問題,但我只是嘗試用其他應用程序連接到我的FTP服務器(我也使用speedtest.tele2.net)與Wifi和4G:它只能在WiFi工作。你知道這是否是一種常見的做法嗎? (我住在法國) –

+0

@Sébastien - 對於移動運營商來說,阻止事情的做法當然是常見的做法,但我不確定阻止FTP的常見做法。如果他們試圖減少網絡負載,這可能並不少見。移動網絡很複雜,即使使用同一個運營商,您也可能會發現某個設備上的某些內容被阻止,而另一個設備上卻沒有,或者不在「加密狗」上。這是因爲他們有機制來定義「個人資料」並基於此來應用流量導向和管制規則(您可能注意到不同的設備使用不同的'APN')。 – Mick

+0

我想我必須留在Wifi上。也許我可以使用web服務或可以在我的FTP上訪問我的文件的東西,但不能直接在移動網絡上使用它... –