我有一个服务器的基本代码:
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方法自动刷新为您,但是这一行不交付给客户端,除非刷新方法被调用之后?我只是想找一个合理的解释?
要启用自动刷新printwwriter,必须将其构造函数的第二个参数设置为true。
我以前遇到过这个问题,只是:
PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true);
那就不一样了。如果你不自动刷新,你可以得到一些错误或接收数据为空,它发生在我一段时间前。致以最亲切的问候。