【问题标题】:Integer encoder decoder for NettyNetty 的整数编码器解码器
【发布时间】:2012-04-12 17:22:52
【问题描述】:

我想通过 Netty 通道流式传输一系列整数。现在,在我的代码channel.write(Integer.valueOf(val) 中,我收到错误java.lang.IllegalArgumentException: unsupported message type: class java.lang.Integer,我理解这是因为我没有任何整数编码器/解码器作为管道中的处理程序。它是否正确?我必须编写自己的整数解码器还是有一个可用的?有关此主题的一些指导将非常有帮助。

【问题讨论】:

    标签: java netty


    【解决方案1】:

    是的,就是这样……你也可以把它写在ChannelBuffer中,然后将ChannelBuffer写入Channel。

    类似:

    ChannelBuffer buf = ChannelBuffers.buffer(4);
    buf.writeInt(Integer.valueOf(val));
    channel.write(buf);
    

    【讨论】:

      【解决方案2】:

      是的,你的理解是正确的。如果您的管道中没有合适的FrameEncoder,Netty 会举手并说它不知道如何处理Integer

      如果您想添加一个现成的组件,您可以将ObjectEncoderObjectDecoder 添加到您的管道中。否则,您需要实现自己的帧编码器和解码器。

      【讨论】:

        猜你喜欢
        • 2018-04-12
        • 2017-10-19
        • 1970-01-01
        • 1970-01-01
        • 2023-03-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多