![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
netty
明成天下
做个技术达人
展开
-
package io.netty.handler.codec.ReplayingDecoder
package xmg.quest.netty.core;/*** @author 作者 : xuminggang* @version 创建时间:2020年6月8日 上午10:05:15* */import io.netty.buffer.ByteBuf;import io.netty.buffer.Unpooled;import io.netty.channel.ChannelHandler;import io.netty.channel.ChannelHandlerContext;.原创 2020-06-09 10:13:47 · 659 阅读 · 0 评论 -
io.netty.handler.codec.MessageToMessageDecoder
package xmg.quest.netty.core;/*** @author 作者 : xuminggang* @version 创建时间:2020年6月8日 上午10:19:13* */import io.netty.channel.ChannelHandlerContext;import io.netty.channel.ChannelInboundHandler;import io.netty.channel.ChannelInboundHandlerAdapter;impo.原创 2020-12-22 17:51:02 · 685 阅读 · 0 评论 -
package io.netty.util.ReferenceCounted
package xmg.quest.netty.core;/** * 一个引用计数对象需要显式的回收 * <p> * 当一个新的{@link ReferenceCounted} 被创建好,这个对象的引用计数就是{@code 1}。 * 调用{@link #retain()}方法会增加这个引用计数,调用 {@link #release()}会减少这个引用计数。 * 当引用计数减少到 {@code 0},这个对象会被显式的回收,如果去访问一个已经被回收掉的对象通常会导.原创 2020-06-02 18:23:55 · 251 阅读 · 0 评论 -
JDK的ByteBuffer和Netty的ByteBuf对比
Netty的ByteBuf采用读写索引分离的策略(readerIndex与writerIndex),一个初始化(里面尚未有任何数据)的ByteBuf的readerIndex与writerIndex都为0。当读索引与写索引处于同一个位置时,如果我们继续读取,就会抛出IndexOutofBoundsException对于ByteBuf的任何读写操作都会分别单独维护读索引与写索引。maxCapac...原创 2020-03-26 11:08:58 · 183 阅读 · 0 评论 -
Netty中的ByteBuf
Netty中的ByteBuf提供的三种缓冲区类型1 heap buffer(堆缓冲区)2 direct buffer(直接缓冲区)3 composite buffer(复合缓冲区)提供的三种缓冲区类型你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。1 heap buf...原创 2020-03-25 15:43:30 · 165 阅读 · 1 评论 -
Netty两种发送消息的方式Channel和ChannelHandlerContext
可以直接写到Channel中,也可以写到channelHandler所关联的那个ChannelHandlerContext中。对于Channel方式来说,消息会从ChannelPipeline的末尾开始流动;对于ChannelHandlerContext来说,消息将从ChannelPipeline中的下一个ChannelHandler开始流动。...原创 2020-03-19 12:57:19 · 4098 阅读 · 0 评论 -
JDK的Future ,Netty的Future与ChannelFuture
1.JDK的Future 只能通过手工方式检查执行结果,而这个操作时会阻塞的;2.Netty则对ChannelFuture进行了增强,通过ChannelFutureListener以回调的方式来获取执行结果,去除了手工检查阻塞的操作;3.值得注意的是:ChannelFutrueListener的operationComplete方法是由I/O线程执行的,因此要注意的是不要在这里执行耗时...原创 2020-03-18 16:01:09 · 128 阅读 · 0 评论 -
Netty的EventLoop和EventLoopGroup
EventLoopGroup : 事件循环组EventLoop:事件循环1个EventLoopGroup中包含1个或多个EventLoop 1个EventLoop在它的整个生命周期当中只会与唯一一个Thread进行绑定 所有由EventLoop所处理的各种I/O事件都将在它关联的那个Thread上进行处理。 一个Channel在它的整个生命周期中只会注册在一个EventLoop上。...原创 2020-03-18 09:36:42 · 230 阅读 · 0 评论 -
Reactor模式介绍
Reactor模式成为反应器模式Reactor角色构成(Reactor模式一共有5中角色构成)1.Handle:(句柄或是描述符):本质上表示一种资源,是由操作系统提供的;该资源用于表示一个个的事件,比如说文件描述符,或者是针对网络编程中的socket描述符。事件即可以来自外部,也可来自内部;外部事件比如说客户端的连接请求,客户端发送过来数据等;内部事件比如说操作...原创 2020-03-04 10:32:59 · 152 阅读 · 0 评论 -
NIO 简单的聊天室
服务器端package com.xmg.nio.selector;import java.io.IOException;import java.net.InetSocketAddress;import java.net.ServerSocket;import java.nio.ByteBuffer;import java.nio.channels.SelectionKey;im...原创 2019-11-22 15:04:14 · 85 阅读 · 0 评论 -
Netty实战的第13章UDP client
LogEventDecoderpackage com.xmg.nnetty.udp.client;import java.util.List;import com.xmg.nnetty.udp.LogEvent;import io.netty.buffer.ByteBuf;import io.netty.channel.ChannelHandlerContext;import...原创 2018-12-04 11:36:48 · 361 阅读 · 0 评论 -
Netty实战的第13章UDP的server
目录结构LogEventpackage com.xmg.nnetty.udp;importjava.net.InetSocketAddress;public class LogEvent { public static final byte SEPARATOR = (byte)':'; private final InetSocketAddress addres...原创 2018-12-04 11:34:32 · 184 阅读 · 0 评论