Java OutputStream仅在关闭时刷新数据

Nea*_*oro 8 java sockets outputstream

Socket socket = new Socket("192.168.178.47", 82);

OutputStream out = socket.getOutputStream();
out.write("{ \"phone\": \"23456789\" }".getBytes());
out.flush();
Run Code Online (Sandbox Code Playgroud)

//服务器

InputStream in = client.getInputStream();
ByteArrayOutputStream bOut = new ByteArrayOutputStream();

int i = 0;
while((i = in.read()) >= 0) {
    bOut.write(i);
}

String complete = new String(bOut.toByteArray(), "UTF-8");
Run Code Online (Sandbox Code Playgroud)

我曾尝试通过OutputStream将数据发送到套接字,但数据没有刷新.如果我添加out.close();到最后然后它完美地工作,但套接字已关闭,我无法接受响应.有人知道为什么吗?服务器没有给出任何类型的错误.我曾经使用过Java 1.7!

Evg*_*eev 7

服务器可能正在等待行尾.如果是这种情况,请在文本中添加"\n"