看板 java 關於我們 聯絡資訊
我覺得這是程式邏輯有問題... 並非執行緒的問題. ※ 引述《chen1025 (小陳)》之銘言: (解釋部分 + 非重點程式部分略) : do{ : message_from_client = input.readLine(); : System.out.println(message_from_client); : message_from_server = type.readLine(); //一對一對話 : output.println(message_from_server); : }while(true); 你這樣做是告訴電腦說你要去 input readLine() 以後 然後去 type readLine() 這就是你必須要去等另外一邊有訊息的原因. 你可以參考一下 BufferedReader 的 API 中, 查詢是否有得知 type 跟 input 有資料需要讀取的 method 透過此 method 以 if 或其他方式加以判斷是否需要 readLine 及 println 即可 -- do { if (input.ready()) { message_from_client = input.readLine(); System.out.println(message_from_client); } if (type.ready()) { message_from_server = type.readLine(); //一對一對話 output.println(message_from_server); } } while (true); -- 最後我有一個小小的不情之請, 如果你從這中間有獲得什麼心得,或覺得說能留下些感想, 來幫助下一位遭遇此種困難的人,能更加易於了解如何去解決這樣一個問題, 也請你多多分享,謝謝。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.160.34.54