netty tcp 字节有序->对象有序
来源:互联网 发布:长沙千度网络好不好 编辑:程序博客网 时间:2024/06/06 03:06
io.netty.handler.codec.serialization.ObjectDecoder
将ByteBuf[]反序列化为java对象。
A decoder which deserializes the received ByteBufs into Java objects.
io.netty.handler.codec.serialization.ObjectEncoder
编码器,将java对象序列化为一个netty的ByteBuf对象。
An encoder which serializes a Java object into a ByteBuf.
要求传送的类实现java.io.serializable接口。用法见下。
Bootstrap b = new Bootstrap(); b.handler(new ChannelInitializer<SocketChannel>() { @Override public void initChannel(SocketChannel ch) throws Exception { ch.pipeline().addLast(new ObjectEncoder(), new ObjectDecoder(ClassResolvers.cacheDisabled(null)), new TcpClientHandler()); } });
完整的项目示例见github。
https://github.com/chuchu9293/NettyTcpObjOrdering其他Decoder
ByteToMessageDecoder是ChannelHandler的一个实现类,他可以在处理数据拆分的问题上变得很简单。
每当有新数据接收的时候,ByteToMessageDecoder都会调用decode()方法来处理内部的那个累积缓冲。
Decode()方法可以决定当累积缓冲里没有足够数据时可以往out对象里放任意数据。当有更多的数据被接收了ByteToMessageDecoder会再一次调用decode()方法。
如果在decode()方法里增加了一个对象到out对象里,这意味着解码器解码消息成功。ByteToMessageDecoder将会丢弃在累积缓冲里已经被读过的数据。请记得你不需要对多条消息调用decode(),ByteToMessageDecoder会持续调用decode()直到不放任何数据到out里。
每当有新数据接收的时候,ByteToMessageDecoder都会调用decode()方法来处理内部的那个累积缓冲。
Decode()方法可以决定当累积缓冲里没有足够数据时可以往out对象里放任意数据。当有更多的数据被接收了ByteToMessageDecoder会再一次调用decode()方法。
如果在decode()方法里增加了一个对象到out对象里,这意味着解码器解码消息成功。ByteToMessageDecoder将会丢弃在累积缓冲里已经被读过的数据。请记得你不需要对多条消息调用decode(),ByteToMessageDecoder会持续调用decode()直到不放任何数据到out里。
1 0
- netty tcp 字节有序->对象有序
- Redis对象-5-有序集合对象
- treeSet 对于对象的有序添加
- 有序线程
- 数列有序!
- 有序子集
- 有序组合
- 有序类型
- 数列有序
- 有序列表
- 数列有序
- 数列有序
- 有序UUID
- 数列有序
- 数列有序
- 数列有序!
- 有序广播
- 有序广播
- Oracle SQL语句优化
- Dalvik和ART的区别
- Java多线程之线程其他类
- 内部类简析
- 怎么把eclipse-kepler字体设置为courier new
- netty tcp 字节有序->对象有序
- 排列组合:poj 1019 Number Sequence
- Latex引用公式
- Oracle sql语句简单优化
- 循环-27. 求给定序列前N项和之五(15)
- asp.net中文传参乱码问题
- MFC
- JS DOM 第七章- 动态创建标记
- http 编码chunked