用于Netty的整数编码器解码器

时间:2012-04-12 17:22:53

标签: java netty

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

2 个答案:

答案 0 :(得分:2)

是的情况就是这样......您也可以将它写在ChannelBuffer中,然后将ChannelBuffer写入频道。

类似的东西:

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

答案 1 :(得分:1)

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

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