如果消息太大或以某种方式位于缓冲区的两侧,该怎么办? 这是示例
DirectByteBuffer buffer1 = ByteBuffer.allocateDirect(128);
DirectByteBuffer buffer2 = ByteBuffer.allocateDirect(128);
channel.read(buffer1);
channel.read(buffer2);
Car car = new Car();
car.wrap(buffer1, 256); //????
现在假设Car
对象在两个缓冲区中,开头位于buffer1
,结尾位于buffer2
。
由于协议的流媒体特性,我如何使用SBE来流式传输可能不可避免地位于不同块中的对象?
PS。 可能的方法是再创建一个缓冲区,其大小需要保存消息并将两个块复制到其中,但这对我来说似乎效率低下。 感谢