您的位置:首页 > 移动开发 > Objective-C

Java NIO框架Netty教程(九)-Object对象编/解码

2014-03-27 00:08 441 查看
看到题目,有的同学可能会想,上回不是说过对象传递了吗?是的,只是在《Java
NIO框架Netty教程(八)-Object对象传递》中,我们只是介绍如何使用Netty提供的编/解码工具,完成对象的序列化。这节是想告诉你Netty具体是怎么做的,也许有的同学想自己完成序列化呢?况且,对象的序列化,随处可用:)

先看怎么编码。

?
ObjectEncoder.java

其实你早已经应该想到了,在Java中对对象的序列化自然跑不出ObjectOutputStream了。Netty这里只是又做了一层包装,在流的开头增加了一个4字节的标志位。所以,Netty声明,该编码和解码的类必须配套使用,与单纯的ObjectIntputStream不兼容。

* An encoder which serializes a Java object into a {@link ChannelBuffer}.

* <p>

* Please note that the serialized form this encoder produces is not

* compatible with the standard {@link ObjectInputStream}. Please use

* {@link ObjectDecoder} or {@link ObjectDecoderInputStream} to ensure the

* interoperability with this encoder.

解码自然是先解析出多余的4位,然后再通过ObjectInputStream解析。

关于Java对象序列化的细节问题,不在文本讨论的范围内,不过不知您是否感兴趣试试自己写一个呢?所谓,多动手嘛。

?
?
怎么样,是不是也好用?所谓,模仿,学以致用。

不过,提醒一下大家,这个实现里有很多硬编码的东西,切勿模仿,只是为了展示Object,编解码的处理方式和在Netty中的应用而已。

如非特别注明,本站内容均为OneCoder原创,转载请务必注明作者和原始出处。

本文地址:http://www.coderli.com/netty-custom-object-codec
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: