Java通过套接字发送数据 - 为什么我需要在String的末尾添加换行符?

时间:2011-03-06 15:28:08

标签: java sockets client-server

所以,虽然我现在明白为什么连接到socket的Outputstream需要在立即发送数据时刷新,但我仍然不明白为什么我需要在String的末尾添加换行符。

这有效:

// writer is a PrintWriter
writer.println("Hello World!");

这不是:

Writer.print("Hello World!");
writer.flush;

2 个答案:

答案 0 :(得分:5)

您应该更准确地定义工作并且无法正常工作。客户端和服务器之间的协议是什么?你期望发生什么,你观察到了什么?

我怀疑服务器只是在做任何事情之前等待换行符出现在其输入中。如果是这种情况,那么当然在发送换行符之前在客户端刷新作者将无济于事。

答案 1 :(得分:2)

如果按照上一个问题使用BufferedReaders readLine方法读取,readLine将无法完成,除非它找到换行符。