가장 간단한 클라이언트 - 서버 통신이 있습니다.스트림을 플러시해도 효과가 없지만 작성자가 플러시됩니다.
클라이언트 :
public static void main(String args[]) throws Exception{
Socket s = new Socket("localhost", 12345);
BufferedReader r = new BufferedReader(new InputStreamReader(s.getInputStream()));
System.out.println(r.readLine());
s.close();
}
서버 :
public static void main(String args[]) throws Exception{
@SuppressWarnings("resource")
ServerSocket server = new ServerSocket(12345);
Socket client = server.accept();
OutputStream out = client.getOutputStream();
BufferedWriter w = new BufferedWriter(new PrintWriter(out));
w.write("Hello client\n");
w.flush(); //Works fine, client printed Hello client
}
그러나 우리는 exception'll가 발생 할 스트림을 플러시합니다.
서버 :
그 차이의 이유는 무엇public static void main(String args[]) throws Exception{
@SuppressWarnings("resource")
ServerSocket server = new ServerSocket(12345);
Socket client = server.accept();
OutputStream out = client.getOutputStream();
BufferedWriter w = new BufferedWriter(new PrintWriter(out));
w.write("Hello client\n");
out.flush(); //Has no effect, doesn't deliver the line to the client.
}
?
질문의 한 부분은 플러시가 예외를 발생 시키지만 질문의 다른 부분은 효과가 없다고 말합니다. 무엇 이니? – user2357112