因此,雖然我現在知道爲什麼在數據應該立即發送時需要刷新連接到套接字的輸出流,但我仍然不明白爲什麼需要在字符串末尾放置換行符。Java通過套接字發送數據 - 爲什麼我需要在字符串的末尾添加換行符?
這工作:
// writer is a PrintWriter
writer.println("Hello World!");
這不:
Writer.print("Hello World!");
writer.flush;
因此,雖然我現在知道爲什麼在數據應該立即發送時需要刷新連接到套接字的輸出流,但我仍然不明白爲什麼需要在字符串末尾放置換行符。Java通過套接字發送數據 - 爲什麼我需要在字符串的末尾添加換行符?
這工作:
// writer is a PrintWriter
writer.println("Hello World!");
這不:
Writer.print("Hello World!");
writer.flush;
您應該定義工作和不工作更準確地說。客戶端和服務器之間的協議是什麼?你期望會發生什麼,你觀察到了什麼?
我懷疑服務器只是在做任何事之前等待換行符出現在它的輸入中。如果是這樣的話,那麼當然在發送換行符之前沖洗客戶端的作者是無濟於事的。
如果您使用的是BufferedReaders ReadLine方法讀取,按您剛纔的問題,的readLine將無法完成,除非它找到的換行符。
你忘記了()在writer.flush還是這個真實的代碼?如果它是真實代碼,請使用writer.flush()來嘗試。 – Kosi2801 2011-03-06 15:32:15