0

Android アプリからインターネット上のチャット サーバーに接続しようとしているので、まず AsyncTask からサーバーに接続しているかどうかをテストします。

@Override
    protected Void doInBackground(SocketAndEditText... soEd) {
    try{
            InetAddress address1 = InetAddress.getByName("130.237.161.23");
            boolean reachable = address1.isReachable(4456);
            //...
    } catch (Exception e) {
        //...
    }
}

上記のコードを実行すると、変数reachableは値を取得しますfalseが、単純な Java コンソール アプリケーションと同じコードを実行すると、次のようになりますtrue

import java.net.InetAddress;
public class Test {
    public static void main(String[] args) {
        try{
            InetAddress address1 = InetAddress.getByName("130.237.161.23");
            boolean reachable = address1.isReachable(4456);
            System.out.println(reachable);
        } catch (Exception e) {
            //...
        }
    }
}

私のマニフェストファイルには<uses-permission android:name="android.permission.INTERNET" />

Android では動作せず、Java アプリケーションとして動作するのはなぜですか?

4

0 に答える 0