我正在构建一个客户端/服务器应用程序,我试图使用PrintWriter从服务器线程向客户端发送一个字符串。我建我的PrintWriter这样的:PrintWriter只发送带有println的字符串而不打印
// Instantiate a PrintWriterwith a correctly implemented
// client socket parameter, and autoflush set to true
PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true);
假设,此外,客户端是从一个BufferedReader读取输入流,被实例化这样:
BufferedReader in = new BufferedReader(new InputStreamReader(client.server.getInputStream()));
和客户端从消息服务器:
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()',那么你需要换行符。 –