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來判斷一行的結束,需要發送數據時手動添加換行符。
否則,會認為一行沒有讀取到結束的位置,不會把緩存區的數據發送。
