InputStream读取到字节数组 - 它会混合消息

时间:2015-03-26 14:57:09

标签: java arrays sockets byte server

假设我有一个已连接的套接字,我正在监听,例如,将字节读取到1024大小的缓冲区。如果有一个接一个地发送了2个消息,那么这个读取方法会读取整个第一个消息,然后读取下一个消息,或者以某种方式将消息分开吗?

1 个答案:

答案 0 :(得分:2)

InputStream不知道第一条消息的结束位置和第二条消息的开始位置。所以它可以读取2个字节,然后是1024个字节,然后是32个字节,尽管消息分别是512个字节和546个字节。

因此,您需要根据分隔符或固定的消息长度,或者根据消息长度+消息正文组成的数据包定义一个明确的协议。