控制台输入数据无法结束输入 网络编程中的I/O问题

public class Client {

public static void main(String[] args) throws Exception {

    Socket socket = new Socket(InetAddress.getLocalHost(), 8888);
    BufferedReader line = new BufferedReader(new InputStreamReader(System.in));
    BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));

    bw.write(line.readLine());

    BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
    String str = br.readLine();
    System.out.println(str);

    br.close();
    bw.close();
    line.close();
}

}

public class Server {

public static void main(String[] args) throws Exception {

    ServerSocket serverSocket = new ServerSocket(8888);
    Socket socket = serverSocket.accept();
    Reader reader = new InputStreamReader(socket.getInputStream());
    BufferedReader br = new BufferedReader(reader);

    int n;
    while ((n = br.read()) != -1) {
        System.out.println((char) n);
    }

    PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
    out.println("您的信息已收到" + "\n");

    out.close();
    br.close();
    serverSocket.close();
}

}
图片说明

https://blog.csdn.net/sinat_33713995/article/details/77657889