Loading

摘要: Netty自定义实现粘包与粘包 TCP粘包与拆包 问题的展现程序 默认不适应任何编解码器的情况下 Server public class MyServer { public static void main(String[] args) throws Exception { HashMap<Obje 阅读全文
posted @ 2020-06-22 16:29 RainbowSea1 阅读(347) 评论(0) 推荐(0)
摘要: Netty自定义编解码器 程序示例 继承ByteToMessageDecoder 的解码器 public class MyByteToLongDecoder extends ByteToMessageDecoder { @Override protected void decode(ChannelH 阅读全文
posted @ 2020-06-22 16:28 RainbowSea1 阅读(345) 评论(0) 推荐(0)
摘要: Netty的ByteBuf 数据容器 ByteBuf 注意:通过索引来访问ByteBuf时并不会改变真实的读索引与写索引,我们可以通过ByteBuf的readerIndex(int i)与WriterIndex(int i)方法分别直接修改读索引与写索引 Netty ByteByf所提供的3种缓冲区 阅读全文
posted @ 2020-06-22 16:25 RainbowSea1 阅读(220) 评论(0) 推荐(0)
摘要: Netty中的理论与实践 Netty线程模型理论 一个EventLoopGroup当中会包含一个或多个EventLoop 一个EventLoop在它的整个生命周期当中都只会与唯一一个Thread进行绑定 所有由EventLoop所处理的各种I/O事件都将在它所关联的那个Thread上进行处理 一个C 阅读全文
posted @ 2020-06-22 16:24 RainbowSea1 阅读(193) 评论(0) 推荐(0)
摘要: Netty Server Start 源码分析 针对程序 public static void main(String[] args) throws Exception { EventLoopGroup bossGroup = new NioEventLoopGroup(); //or EventL 阅读全文
posted @ 2020-06-22 16:23 RainbowSea1 阅读(350) 评论(0) 推荐(0)
摘要: Zero-copy,零拷贝 程序示例 普通IO拷贝 客户端向服务器发送数据,服务器接收 Server public class OldIOServer { public static void main(String[] args)throws Exception { ServerSocket se 阅读全文
posted @ 2020-06-22 16:21 RainbowSea1 阅读(295) 评论(0) 推荐(0)
摘要: Java NIO 概念 java.io 最为核心的一个概念是流(Stream),面向流的编程。Java中一个流要么是输入流,要么是输出流不可能同时既是输入流又是输出流 java.nio 中拥有3个核心概念:Selector,Channel与Buffer。在java.nio中是面向块(block)或是 阅读全文
posted @ 2020-06-22 16:14 RainbowSea1 阅读(235) 评论(0) 推荐(0)