![](/img/trans.png)
[英]Sending TCP packets via Netty, Netty is dividing the data into different packets?
[英]Need to reassemble tcp packets with netty
目前,我正在使用内部协议,在该协议中,我向硬件发送请求并收到netty的答案。 在我收到的消息中,有几个字节告诉我答案将包含多少个字节。 在我的channelRead方法中,我等待直到接收到的消息的可读字节等于或大于期望的字节,以确保获得所有数据。
if (((ByteBuf) msg).readableBytes() >= dataSize) {
//do something with the bytes
ctx.close();
((ByteBuf) msg).release();
}
如果我从硬件接收到一个确切的tcp包,则此方法工作正常。 有时,硬件将TCP帧分成几个包,而我的channelRead永远等待着。
Netty是否有一种简单的方法可以在channelRead方法中重组这些数据包?
只需扩展ByteToMessageDecoder。 这将为您处理所有缓冲。 查看javadocs以获得更多详细信息和示例。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.