![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
netty
凯歌的博客
架构师,java,python
展开
-
《netty》netty的核心组件
netty基于socket,实现了一个高性能的,nio的网络通信框架。我们来看一下他的核心组件:Channel: 通道,是数据传输的载体, 可以被打开或关闭,连接或者断开。 如:NioServerSocketChannel回调:就是回调函数。Future:ChannelFuture 使我们可以在通道上注册监听, 异步的处理操作。事件和ChannelHandler:...原创 2018-10-30 23:31:53 · 141 阅读 · 0 评论 -
《netty》netty源码分析之NioEventLoop和NioEventLoopGroup
NioEventLoop继承Executor接口.NioEventLoop持有Selector selector; 通过openSelector() 获取Selector . @Override protected void run() { for (;;) { try { switch (sel...原创 2018-12-09 23:05:14 · 149 阅读 · 0 评论 -
《netty》netty源码分析之future和promise
future java.util.concurrent.Future<V>, Future表示一个可能还没有完成的异步任务的结果,针对这个结果可以添加Callback以便在任务执行成功或失败后作出相应的操作。// 取消异步操作boolean cancel(boolean mayInterruptIfRunning);// 异步操作是否取消boolean isCanc...原创 2018-12-07 00:03:57 · 298 阅读 · 0 评论 -
《netty》netty源码分析之服务端初始化
public class NettyServer { private static final int port = 6789; //设置服务端端口 private static EventLoopGroup group = new NioEventLoopGroup(8); // 通过nio方式来接收连接和处理连接 pri...原创 2018-12-06 22:50:50 · 182 阅读 · 0 评论 -
《netty权威指南》netty源码模型
知识回顾:1.通道SelectableChannel, 服务端通道ServerSocketChannel , 客户端通道SocketChannel.2. Selector 多路复用器, 可在其上, 注册通道事件.服务端/** * * @author guokaige * */public class TimeServer { /** * @param a...原创 2018-12-01 21:55:24 · 258 阅读 · 0 评论 -
《netty权威指南》同步阻塞I/O
服务端提供时间查询服务import java.io.IOException;import java.net.ServerSocket;import java.net.Socket;/** * * @author guokaige * */public class TimeServer { /** * @param args * @throws IOExc...原创 2018-12-01 19:08:13 · 235 阅读 · 0 评论 -
《netty》javaNIO之Selector(选择器)介绍
Selector(选择器)介绍Selector 一般称 为选择器 ,当然你也可以翻译为 多路复用器 。它是Java NIO核心组件中的一个,用于检查一个或多个NIO Channel(通道)的状态是否处于可读、可写。如此可以实现单线程管理多个channels,也就是可以管理多个网络链接。 使用Selector的好处在于: 使用更少的线程来就可以来处理通道了, 相比使用多个线程,避免了...原创 2018-11-21 22:49:36 · 1060 阅读 · 0 评论 -
《netty》javaNIO之利用SocketChannel和ServerSocketChannel实现客户端与服务器端简单通信
服务端 import java.io.IOException;import java.net.InetSocketAddress;import java.nio.ByteBuffer;import java.nio.channels.ServerSocketChannel;import java.nio.channels.SocketChannel;/** * 1.通...原创 2018-11-21 22:21:56 · 881 阅读 · 0 评论 -
《netty》javaNIO简介
NIO简介Java NIO 是 java 1.4 之后新出的一套IO接口,这里的的新是相对于原有标准的Java IO和Java Networking接口。NIO提供了一种完全不同的操作方式。NIO中的N可以理解为Non-blocking,不单纯是New。它支持面向缓冲的,基于通道的I/O操作方法。 随着JDK 7的推出,NIO系统得到了扩展,为文件系统功能和文件处理提供了增强的支持。 ...原创 2018-11-21 21:48:18 · 152 阅读 · 0 评论 -
《netty》netty源码分析之ChannelPipeline和ChannelHandler
ChannelPipelineChannelPipeline是ChannelHandler的容器,他负责ChannelHandler的事件拦截. @Override public final ChannelPipeline addLast(EventExecutorGroup group, String name, ChannelHandler handl...原创 2018-12-11 00:10:24 · 148 阅读 · 0 评论