繁体   English   中英

如何让Java多条消息一起发送?

[英]How to make Java send multiple messages together?

这是我的代码的摘录:

OutputStream out = this.socket.getOutputStream();
out.write(fourBytes);
out.write(someBytes);
out.flush();

这在 2 个包中发送,即使第一个包只有 4 个字节长。 除了将字节 arrays 连接在一起发送它们之外,还有其他方法吗?

我已经尝试过setTcpNoDelay(false)

当然。 使用BufferedOutputStream :-P

setTcpNoDelay改变操作系统发送数据包的方式,而不是 Java 发送数据包的方式。 改变后者的唯一方法是缓冲你的 output,正如我上面建议的那样。

顺便说一句,这不会影响您的数据真正分成多少个数据包。 同样,这取决于操作系统,以及接收端指定的 window。 因此,您不能使用数据包来分隔数据。

用缓冲的 output stream 包裹它

我认为禁用 Nagle 是由setTcpNoDelay(true)完成的

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM