클라이언트/서버 응용 프로그램을 구축 중이며 PrintWriter를 사용하여 서버 스레드에서 클라이언트로 String을 보내려고합니다. 나는이처럼 내 PrintWriter를 구성 :PrintWriter 만 println과 함께 문자열을 보내고 인쇄하지 않습니다.
BufferedReader in = new BufferedReader(new InputStreamReader(client.server.getInputStream()));
및 클라이언트에서 메시지를 가져옵니다
// Instantiate a PrintWriterwith a correctly implemented
// client socket parameter, and autoflush set to true
PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true);
, 클라이언트가의 BufferedReader로 입력 스트림에서 읽고 있다는 것을이 같은 인스턴스화, 더, 가정 다음과 같은 서버 :
String serverMessage = in.readLine();
자세히 알 수 있듯이 autoflushing을 true로 설정했습니다. 이제는 클라이언트에게 간단한 메시지를 보내려고합니다. 나는 문을 실행할 경우
out.println("Message to client");
out.print("Message to client");
메시지가 전송되지 않습니다. 또한 :
out.print("Message to client");
out.flush();
도 작동하지 않습니다.
이것은 터미널의 클라이언트에게 메시지를 보내고 동일한 줄에서 응답 할 수 있어야하기 때문에 문제가됩니다. PrintWriter를 사용하여 플러시/클라이언트로 보내지지만 줄 바꿈 문자를 보내지 않도록 메시지를 보내는 방법은 무엇입니까?
클라이언트가 스트림을 어떻게 읽습니까? –
클라이언트가 BufferedReader로 스트림을 읽습니다. 인스턴스화를 질문에 넣을 것입니다. – DIMMSum
'BufferedReader # readLine()'을 사용하고 있다면 줄 바꿈 문자가 필요합니다. –