2

Android アプリケーションで FTP サーバーに接続しようとしていますが、無限ループに陥っていると思いますが、その理由がわかりません。私が使用しているライブラリは Apache Comomns net です。

マニフェストにインターネット許可があります:

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

AsyncTask で FTP にも接続しています。

動作するはずだったサンプルコードを次に示します。

    // 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) を使用すると、connect() しようとする回線で永遠にループするようです。

この背後にあるものを理解しようとしましたが、明確ではありません。

4G を使用して FTP に接続するにはどうすればよいですか?

どんな助けでも大歓迎です。

4

1 に答える 1

3

ネットワーク オペレータが FTP ポートをブロックしているようです。

これをテストするには、モバイル デバイスのブラウザで同じサイトに ftp してみます。うまくいく場合は、アプリの問題を示しています。

うまくいかない場合は、既知の動作中の FTP サイトで試してみてください - たとえば、Tele2 はテスト サイトをホストしています (クイック検索を行うと、他にも多くのオープン FTP サイトがあります)。

モバイル デバイスから 4G 経由でこれにアクセスできない場合は、オペレーターが FTP を使用している可能性が非常に高いと思われます。その理由と、ブロックを解除するためにできることについて、オペレーターに連絡する必要があります。

于 2015-05-30T21:17:00.270 に答える