2014-02-19 108 views
0

我對java的網絡非常陌生,想要創建一個網絡聊天程序,我在網上找到了一些教程,並且從中發現了一些教程。我有我的程序的服務器工作,唯一干擾的是當我嘗試讀取服務器發送的聊天消息時。由於打印消息確實工作,服務器確實發送了數據字節。所以問題是while循環永遠不會結束,這會成爲一個問題?客戶端的Java網絡輸入流

public String[] updateChatDialog() throws IOException{ 
    String returnString = ""; 
    int accessed = -1; 

    while((accessed = in.read()) > 0){ 
     System.out.println((char)accessed); 
     returnString = returnString + (char)accessed; 
    } 
    System.out.println(returnString); 
    return stringToTable(returnString); 
} 

在java網絡上的任何提示將有所幫助!

每次將聊天呈現爲一個字符串時,我都會重置BufferedInputStream,而且上面的方法和返回值一樣。

回答

0

'問題'是你的循環直到流結束,並且對方沒有關閉連接,所以EOS永遠不會到達。

如果你想讀消息你必須自己定義它們。在這個應用程序中最簡單的事情就是寫入和讀取行,例如PrintWriter.println() and BufferedReader.readLine().