【问题标题】:Is it possible to write a newline to a socket's OutputStream?是否可以向套接字的 OutputStream 写入换行符?
【发布时间】:2012-01-25 10:19:50
【问题描述】:

我有一个运行良好的Socket,但是否可以将newline 写入Socket OutputStream?

这是我尝试过的:

InputStream input  = clientSocket.getInputStream();
PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true);

out.write("Hello" + "\r\n");          
out.write("People");

out.flush();

【问题讨论】:

  • 你是如何尝试这样做的?
  • [编辑后]您正确地将换行符写入流。是否会弹出任何错误或有任何异常行为?
  • 没有,但是卡在while(true){}循环中的客户端只读取第一行。
  • 那么你也应该发布阅读客户端的代码 - 错误似乎在客户端。
  • 不同的操作系统对换行符的处理方式不同。更多信息在这里:en.wikipedia.org/wiki/Newline

标签: java sockets tcp io


【解决方案1】:

“换行符”是一个基于文本的概念。 OutputStream 是一个基于二进制的概念。

如果你正在向套接字写入文本,你应该使用一些描述的Writer,例如一个OutputStreamWriter。然后,您可以将其包装在具有适当 newLine() 方法的 BufferedWriter 中。

如果您向套接字写入文本,那么“换行”就没有多大意义。

【讨论】:

  • 我稍微弄乱了我的客户端并使用了 OutputStreamWriter。工作。 :D
猜你喜欢
  • 2015-10-14
  • 2012-07-07
  • 1970-01-01
  • 2012-04-20
  • 2021-07-22
  • 2020-08-19
  • 2011-10-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多