我有服务器的基本代码:
ServerSocket serverSocket = new ServerSocket(14000);
Socket clientSocket = serverSocket.accept();
BufferedReader in = new BufferedReader(
new InputStreamReader(clientSocket.getInputStream()));
PrintWriter out = new PrintWriter(clientSocket.getOutputStream());
String incoming;
while((incoming = in.readLine()) != null){
System.out.println("Client Says: " + incoming);
out.println("Client Says: " + incoming);
out.flush();
//if(incoming.equals("HELLO")) break;
}
clientSocket.close();
serverSocket.close();
我正在努力进一步了解溪流,因为他们给了我一些严重的麻烦。根据我的阅读,println方法会自动为您刷新,但是除非之后调用flush方法,否则不会将此行传递给客户端?我只想找到一个很好的解释呢?
答案 0 :(得分:2)
要启用PrintWriter的自动刷新,必须将其构造函数的第二个参数设置为true。
答案 1 :(得分:1)
之前我遇到过这个问题,只是:
PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true);
这将有所作为。如果你没有autoflush你可以得到一些错误或接收数据为null,它发生在我不久前。最好的问候。