1. 程式人生 > >Java的socket編程中關於bufferedWriter的發送問題

Java的socket編程中關於bufferedWriter的發送問題

消息 output write 數據 第一次 scanner 添加 buffer IV

1 BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));  
2 String send = scanner.nextLine()+"\n"; 
3 System.out.println("客戶端已發送:" + send); 
4 bw.write(send); 
5 bw.flush();

今天寫socket通信的題目的時候,題目要求使用bufferedWriter來發送數據。

第一次寫的時候第二行代碼寫的是 String send = scanner.nextLine();

但是服務器端總接收不到信息,但是使用socket.shutdownOutputStream();可以在服務器端成功接收到消息。

經查詢,使用bufferedWriter的時候,發送方是以\n和\r來判斷一行的結束,需要發送數據時手動添加換行符。

否則,會認為一行沒有讀取到結束的位置,不會把緩存區的數據發送。

 

Java的socket編程中關於bufferedWriter的發送問題