首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Netty MessageToMessageCodec解码方法只接收512字节的大响应块。

Netty MessageToMessageCodec解码方法只接收512字节的大响应块。
EN

Stack Overflow用户
提问于 2018-11-29 08:26:30
回答 1查看 133关注 0票数 3

我正在从事Apache PLC4X项目,在该项目中,我们使用Netty实现了工业可编程控制器协议。目前,当解码响应的大小超过512字节时,我们就遇到了问题。

一旦响应的大小超过这512个字节,我们基于MessageToMessageCodec的协议层实现的解码方法就只接收到一个512个字节的大ByteBuf。在此之后,该方法将与数据包的其余部分一起再次调用。

怎样才能正确地处理这件事?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-29 08:36:38

您应该在这里使用ByteToMessageDecoder,这将允许您使用buffer数据。有关如何将其存档的更多细节,请参见javadocs。但基本上是这样的:

代码语言:javascript
复制
YourDecoder extends ByteToMessageDecoder {
    @Override
    protected void decode(ChannelHandlerContext ctx, ByteBuf in, List<Object> out) {
        if (in.readableBytes() < 1024) {
            return;
        }
        ....
    }
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53534645

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档