BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
在writer.flush()後也讀不到數據?
準確的說不是因爲flush方法的問題,而是因爲服務器端接受數據時使用的readLine()方法必須要接收到一個換行符才能讀取一行,
而客戶端Writer.println()方法最後正好會發送換行符所以服務器端才能接收到。如果換成了Writer.print()方法,服務器端也接收不到。同理,如果使用BufferedWriter和PrintWriter的write()方法也是不能使服務器端接收到數據,但是隻要在執行了這些方法之後,再發送一個換行符,如write("\n"),服務器端就能接收到了。當然,flush()也是必須要執行的。