![](https://img.kancloud.cn/ec/38/ec381f956b3708fae1f93b9518dfa353_751x612.png)
### TCP粘包和拆包发生原因
![](https://img.kancloud.cn/27/85/27858bdcefd1b0b5cd16cf54fd1d89b4_606x494.png)
### 粘包问题的解决策略
![](https://img.kancloud.cn/2e/0f/2e0feb2da2e2f7b640f646c361c138a9_714x209.png)
### Netty解码器
* LineBasedFrameDecoder
* StringDecoder
* DelimiterBasedFrameDecoder:用于对使用分隔符结尾的消息进行自动解码
* FixedLengthFrameDecoder:用于对固定长度的消息进行自动解码
* ObjectEncoder&ObjectDecoder:二进制编解码器
* ProtobufDecoder
### Protobuf使用注意事项
* 使用Netty的ProtobufVarint32FrameDecoder处理半包消息;
* 继承Netty提供的半包解码器LengthFieldBasedFrameDecoder;
* 继承ByteToMessageDecoder类自己处理半包消息;
- 概述
- Netty&Tomcat的区别
- NIO基础知识
- 同步阻塞式IO
- 伪异步IO编程
- 同步IO之IO-multiplexing
- NIO基础概念
- NIO服务流程
- Netty基础知识
- NettyServer开发示例
- 零拷贝
- TCP粘包和拆包问题
- LineBasedFrameDecoder&StringDecoder
- 应用层消息处理方式
- ByteBuf
- ChannelHandler
- Netty核心组件
- Channel接口
- ChannelHandler
- ChannelInboundHandlerAdapter
- SimpleChannelInboundHandler
- SimpleChannelInboundHandler && ChannelInboundHandler
- ChannelInitializer
- EventLoop接口
- ChannelFuture接口
- ChannelPipeline接口
- 序列化
- JAVA序列化