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

hel*_*hod 1 java sockets client-server

因此,虽然我现在知道为什么连接到套接字的Outputstream需要在立即发送数据时刷新,但我仍然不明白为什么我需要在String的末尾添加换行符.

这有效:

// writer is a PrintWriter
writer.println("Hello World!");
Run Code Online (Sandbox Code Playgroud)

这不是:

Writer.print("Hello World!");
writer.flush;
Run Code Online (Sandbox Code Playgroud)

JB *_*zet 6

您应该定义工作并且不能更精确地工作.客户端和服务器之间的协议是什么?你期望发生什么,你观察到了什么?

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