2012-02-04 27 views
2

私は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"); 
} 
+0

私はよく分かりませんが、これを試すことができます:http://stackoverflow.com/questions/1443166/android-how-to-check-if-the-server-is-available –

+0

それは生きているホストについて語ります。サーバアプリケーションがリスンしていなくても、サーバホストが生存している場合でも、それはうまくいくでしょう。私の場合、私のサーバが接続を受け入れるかどうかを知りたい。 – Milan

+0

何らかのエラーがスローされたようです。ログ内でそれを探したり、 'IOException'を' Throwable'に置き換えてみてください。 –

答えて

0

私はそう私にスマイリーをかまない非常に少数のAndrioid開発を行っています。ホストがクライアント

  • ホストと通信していない理由を

    考えられる理由は、(そう)

  • unexpectlyシャットダウンなどの電源障害がある可能性があります(そう)
  • ホスト接続を閉じることがあり、ファイアウォールを持っています
  • ホストがforwared(おそらく)を正しく移植しない可能性があります
  • あなたのandriodアプリケーションには、ソケットを使用できる適切なマニフェストがありません。
  • あなたがテストしているアンドリノイドデバイスがインターネットを無効にしている可能性があります。
  • 動的である場合、ホストのアドレスは変更されている可能性があります。

logcatの場合、logcatはメインスレッドのログメッセージのみを表示すると思います。しかし私は確信していません。

関連する問題