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 アプリケーションとして動作するのはなぜですか?