netty
文章平均质量分 68
梦中观雨
这个作者很懒,什么都没留下…
展开
-
Netty入门应用之第一个netty项目
服务器端代码public class TimeServer { public void bind(int port) throws Exception{ //创建两NioEventLoopGroup实例。 //NioEventLoopGroup是个线程组。 EventLoopGroup bossGroup = new NioEvent原创 2017-08-12 17:03:29 · 1048 阅读 · 0 评论 -
粘包/拆包问题
问题说明: 粘包/拆包的情况: 1. 分两次读取两个独立的数据包,分别是D1和D2,没有粘包和拆包 2. 一次接受到两个数据包,D1和D2黏在一起,被称为TCP粘包 3. 分两次读取到两个数据包,第一次读取到了完整的D1包和D2包的部分内容,第二次读取到D2包剩下的内容,这是拆包。 4. 分两次读取两个数据包,第一次读取到D1包的部分内容D1_1,第二次读取到D1剩下的内容和D原创 2017-08-19 10:30:22 · 242 阅读 · 0 评论 -
Netty粘包/拆包支持
在之前的Netty项目中没有考虑半包的问题。一旦压力上来或者发送大的报文就会存在粘包拆包问题。使用LineBansedFrameDecode解决TCP粘包问题。 直接在调用Handler之前添加LineBasedFrameDecoder和StringDecoder两个解码器即可。 protected void initChannel(SocketChannel arg0) throw原创 2017-08-19 13:28:24 · 136 阅读 · 0 评论 -
Netty的组件和设计
Channel: 是Java Nio的一个基本构造,他代表一个实体的开放连接,如读操作和写操作。可以把 Channel 看作是传入(入站)或者传出(出站)数据的载体 EventLoop接口: 用于处理连接的生命周期中所发生的事件。 1. 一个 EventLoopGroup 包含一个或者多个 EventLoop; 2. 一个 EventLoop 在它的生命周期内只和一个Th原创 2017-08-19 16:55:03 · 234 阅读 · 0 评论 -
编解码器框架
解码器 将字节解码为消息:ByteToMessageDecoder和ReplayingDecoder 将一种消息解码成另一种消息:MessageToMessageDecoder 每当需要为ChannelPipeline中的下一个ChannelInboundHandle转换入站数据时会用到。抽象类ByteToMessageDecoder Decode(ChannelHandlerContext原创 2017-08-26 17:28:06 · 521 阅读 · 0 评论 -
编解码框架
MessagePack编解码MessagePack的特点:编解码高校,性能高序列化之后的码流小支持跨语言 MessagePack解码器:继承MessageToMessageDecoderpublic class MsgpackDecoder extends MessageToMessageDecoder<ByteBuf> { @Override protected void原创 2017-09-02 14:42:07 · 420 阅读 · 0 评论