2012-01-13 12 views
5

Javaで簡単なチャットを書いていますが、BufferedReaderで待っているデータがあるかどうか確認したいと思います。私はNIOについて読んだことがありますが、私はそれを完全に理解していませんでした。ここに私のコードの一部です:Javaソケットにデータが入っていないか確認してください

public void Send(String data) 
{ 
    out.println(data); 
} 

public String Recv() 
{ 
    if (dataIncomming) 
    { 
     try { 
      return in.readLine(); 
     } catch (IOException e) { 
      System.err.println("Send: Error on BufferedReader.readLine() - IOException"); 
     } 
    } 
    else return ""; 
} 

私はdataIncommingに記入するかわからない...

答えて

7

Stream.Available()メソッドを使用します。また、スレッドが100%時間稼働しないように、正しいバイト数が受信されるまで待つこともできます。

while(Stream.Available() != 0); //block until there is data 

try{ 
    return in.readLine(); 
} catch (IOException e) { 
    System.err.println("Send: Error on BufferedReader.readLine() - IOException"); 
} 
関連する問題