私はAndroidプログラミングには新しく、ネイティブJavaには存在しなかった問題に直面しています。このコードをコンピュータで実行すると、正しく実行されます。しかし、私は私のデバイスでそれを実行します。私は何も得ていない、私はUIにメッセージを投稿しようとし、これのためのログキャストはありません。何が間違っているのか分かりません。Androidサーバがオンラインであるかどうかを確認する
try{
Socket socket = new Socket(serverAddr, SERVER_PORT);
Log.i("TAG","Socket connected");
}catch(IOException e){
Log.i("TAG","Socket not connected");
}
アップデート1:私はちょうどcode..nothing多くを変更し、2分ほど後に、それが行うことになっていたものないことに気づきました?キープ・アライブ・フラグとは何か?それとも、コードをちょうど2〜2回実行して停止することができますか?ソケット作成行以下のコードは、サーバーが停止している場合に2分後に実行されることを理解してください。ここでは以下の私のコードは次のとおりです。
try{
InetAddress serverAddr = InetAddress.getByName(serverIP);
//Line below executes with no delay
postToUI("Trying to connect to standalone server" + "\n\n");
socket = new Socket(serverAddr, SERVER_PORT);
//Line below executes after 2 minutes
postToUI("Successfully connected to standalone server" + "\n\n");
}catch(ConnectException e){
postToUI("Socket not connected");
}catch(IOException e){
postToUI("Socket not connected");
}
私はよく分かりませんが、これを試すことができます:http://stackoverflow.com/questions/1443166/android-how-to-check-if-the-server-is-available –
それは生きているホストについて語ります。サーバアプリケーションがリスンしていなくても、サーバホストが生存している場合でも、それはうまくいくでしょう。私の場合、私のサーバが接続を受け入れるかどうかを知りたい。 – Milan
何らかのエラーがスローされたようです。ログ内でそれを探したり、 'IOException'を' Throwable'に置き換えてみてください。 –