【发布时间】:2015-07-23 12:53:16
【问题描述】:
目前我正在使用一种内部协议,在该协议中我向我们的硬件发送请求并通过 netty 接收答案。在我收到的消息中有几个字节,它们告诉我答案将包含多少字节。 在我的 channelRead 方法中,我等到接收到的消息的可读字节数等于或大于预期的字节数,以确保获得所有数据。
if (((ByteBuf) msg).readableBytes() >= dataSize) {
//do something with the bytes
ctx.close();
((ByteBuf) msg).release();
}
如果我从硬件接收到一个 tcp 包,这会很好。有时硬件将 TCP 帧拆分为几个包,而我的 channelRead 永远等待。
netty中有没有简单的方法在channelRead方法中重新组装这些数据包?
【问题讨论】:
-
如果
readableBytes()小于dataSize怎么办?