繁体   English   中英

需要用netty重新组装tcp数据包

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM