2011-07-07 11 views
0

私は自分のコンピュータ上の単純なJavaサーバに接続しようとしています(実際は真のサーバですが、まずソケットを使ってプログラミングする方法を学んでいます)携帯電話上のアプリケーションは、IOExceptionがスローしかし、エミュレータ上で、それはしないAndroidのソケット - クライアント側のIOException

私が持っています:。。

<は、Androidの許可使用します。name = "android.permission.INTERNETあなた" />

がマニフェストに含まれています。開いたときに実行されるコードブロックは次のとおりです。

try { 
    responseField.setText("Opening socket..."); 
    Socket socket = new Socket(getIP(),Integer.parseInt(getPort())); 
    responseField.setText("Socket opened. Initializing out..."); 
    out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())), true); 
    responseField.setText("Done. Initializing in..."); 
    in = new BufferedReader(new InputStreamReader(socket.getInputStream())); 
    responseField.setText("Done."); 
} catch (NumberFormatException e1) { 
    responseField.setText("NumberFormatException"); 
} catch (UnknownHostException e1) { 
    responseField.setText("UnknownHostException"); 
} catch (IOException e1) { 
    responseField.setText("IOException"); 
} 
+0

getIP()とgetPort()は何を返していますか? – Trevor

+0

Wi-Fi/3Gを確実に稼働させていますか? – f20k

+0

どこが失敗し、エラーは何を言いますか? – KevinDTimm

答えて

0

弱いWi-Fi信号が原因でエラーが発生しているようです。私はその後、ウェブ(Google、CNNなど)をサーフィンしようとしましたが、できませんでした。だから私は今、エミュレーターをテストするか、より強いシグナルをテストする必要があります。ありがとう

0

サーバー側がServerSocketを使用し、ServerSocker.accept()メソッドを使用していることを確認していますか?

+0

はい、エミュレータが完全に接続して送受信します – rsromano

+0

弱いWi-Fi信号がエラーの原因になっているようです。私はその後、ウェブ(Google、CNNなど)をサーフィンしようとしましたが、できませんでした。だから私は今、エミュレーターをテストするか、より強いシグナルをテストする必要があります。ありがとう。 – rsromano

+0

私はまた、あなたのアプリの購入者が明示的に失敗する理由を知るように、非常に良いエラー処理/通知をユーザに勧めます。 – KevinDTimm

0

ウェブに接続することができました(私は前提しています)が、後でない場合は、無線LANの強度に問題はありません。また、あなたがサーフィンしている場所によっては、WiFiルーターがそのような接続を許可しないように設定されている可能性があります。同じネットワーク内の別のコンピュータを使用してサーバーIPにpingを実行し、pingできるかどうか確認してください。エミュレータはサーバがローカルホスト上で動作しているため動作します。

関連する問題