netty用法总结

/**decoder和encoder,如果不需要解析,就使用系统的

* ch.pipeline().addLast(new StringDecoder());

* ch.pipeline().addLast(new StringEncoder());

* 如果使用自己的规则解析,那就写自己的,就如下面

* ch.pipeline().addLast("decoder", new MyMessageDecoder());

*ch.pipeline().addLast("encoder", new MyMessageEncoder());

*↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

*/

 

//定长解码器

ch.pipeline().addLast(new StringDecoder(Charset.forName("GBK")));

ch.pipeline().addLast(new StringEncoder(Charset.forName("UTF-8")));
ch.pipeline().addLast(new FixedLengthFrameDecoder(30));//设置定长解码器 长度设置为30
ch.pipeline().addLast(new StringDecoder());//设置字符串解码器 自动将报文转为字符串


//回车换行解码器(\n\r)
ch.pipeline().addLast(new LineBasedFrameDecoder(1024));
ch.pipeline().addLast(new StringDecoder());
```

 

 

markReaderIndex()    //标记一下当前的readIndex的位置

readBytes()       //转移这个缓冲区的数据到指定的目的地 in.readBytes(byte[]);转移in中的字节到byte数组,转移的长度就是byte的长度。

readableBytes()       //

readShort()     //读取两个字节short数据

readInt()       //读取四个字节int数据

readBte()      //读取一个字节

final ByteBuf bbBuf = Unpooled.copiedBuffer(message.data).order(
                    ByteOrder.LITTLE_ENDIAN);

posted @ 2017-06-16 00:21  张裕轩  阅读(906)  评论(0编辑  收藏  举报