2012-01-13 13 views
5

Tôi đang viết một cuộc trò chuyện đơn giản trong Java và tôi muốn kiểm tra xem có một số dữ liệu đang chờ trên BufferedReader hay không. Tôi đã đọc về NIO, nhưng tôi đã không hoàn toàn hiểu nó. Dưới đây là một số mã của tôi:Kiểm tra dữ liệu incomming trong Java Socket

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 ""; 
} 

Tôi không biết phải điền vào dataIncomming ...

Trả lời

7

Sử dụng phương pháp Stream.Available(). Bạn cũng có thể muốn đợi đến khi nhận được đúng số lượng byte và đợi cho đến khi Chủ đề không chạy 100% thời gian.

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"); 
} 
Các vấn đề liên quan