Java OutputStream 仅在关闭时刷新数据

标签 java sockets outputstream

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

OutputStream out = socket.getOutputStream();
out.write("{ \"phone\": \"23456789\" }".getBytes());
out.flush();

//服务器

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");

我曾尝试通过 OutputStream 将数据发送到套接字,但数据没有刷新。如果我在末尾添加一个 out.close(); 那么它就可以正常工作,但是套接字已关闭并且我无法接受响应。有人知道为什么吗?服务器没有给出任何类型的错误。我用过 Java 1.7!

最佳答案

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

关于Java OutputStream 仅在关闭时刷新数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29750684/

相关文章:

java - Card.io java.lang.OutOfMemoryError

java - 绑定(bind)模型数据查看 - Spring

java - 在 JFrame 中显示 .png 图像?

java - 写入SD卡!安卓,txt数据

c# - Response.OutputStream.Write 在结果文件中添加 html 代码的问题

java - 如何实现可以倒带的 OutputStream?

java - 摆脱丑陋的 if 语句

python - 在一个线程中接收套接字数据,在另一个线程中写入数据——python

node.js - 如何从客户端socket.emit服务器端socket.io捕获命名空间起源

java - 需要java套接字中的端口转发帮助(带AWS服务器的AWS CISCO路由器)