2011-08-10 8 views
1

im guavaweberknechtを使用して、inputStreamを文字列に変換してWebSocket [thisの投稿を参照]に変換します。 Weberknechtは私を投げつけました。だから、サーバーから何かの答えを得るために非常にシンプルなSocket-Connectionを試しています。問題は、私はinputStreamを読むことができません。どうしてか分かりません。android socket connection、inputStreamをsocket.ioまたはnode websocketサーバーでフリーズするinputStream

注: IphoneではWebsocket-Serverが動作します。事前にヘルプ

 try { 
      Socket sock = new Socket("62.212.88.234", 15000); 
      OutputStream out = sock.getOutputStream(); 
      InputStream in = sock.getInputStream(); 

      Log.e("SKT", "Reading input [! PROBLEM HERE !]"); 
      String string = CharStreams.toString(new InputStreamReader(in, 
        "UTF-8")); 

      Log.e("SKT", "Answer [! NEVER REACHED !]:" + string); 
      sock.close(); 

     } catch (UnknownHostException e) { 
      Log.e("SKT", "UnknownHostException: " + e.getMessage()); 
     } catch (IOException e) { 
      Log.e("SKT", "IOException: " + e.getMessage()); 
     } 

ありがとう:

私のコードを[私はイムだけで、サーバーからすべての答えを得るためにここにすべてをしようと...「のWebSocket/=ソケットを」知っています]。

答えて

1

CharStreams.toStringためdocumentationは言う:

は、文字列に読み込み可能なオブジェクトからすべての文字を読み込みます。

私の推測では、リモートエンドはソケットを閉じないので、ストリームの終わりが消費されず、したがってフリーズします。

+0

も同じと考えています。しかし、それはどのように閉鎖されますか? Iphoneは問題なく同じソケットに接続することはできません。アンドロイドはできません。多分私はそのポート問題を考えました。 – proxylittle

+0

私はあなたが何を言っているのか分からないと思います。最も単純なソケットの例を試してみてください。入力ストリームから読み込むだけで、データが表示されます。 –

+0

私はそれが閉鎖される前にそれを読んでいますか? BufferedReaderは行末を予期します。あなたはバイト単位の意味ですか? – proxylittle