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

时间:2011-05-24 12:04:57

标签: java sockets openjdk

以下是我的代码摘录:

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

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

我已经尝试过setTcpNoDelay(false)

3 个答案:

答案 0 :(得分:3)

不确定。使用BufferedOutputStream。 :-P

setTcpNoDelay更改操作系统发送数据包的方式,而不是Java如何发送数据包。改变后者的唯一方法是缓冲输出,如上所述。

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

答案 1 :(得分:1)

用缓冲输出流包裹它

答案 2 :(得分:0)

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

完成的