
netty
文章平均质量分 73
学习netty
NaughtyBo
ctrl + c | ctrl + v
展开
-
Netty启动源码&NioEventLoop剖析&accept剖析&read剖析&write剖析
入口关键代码(1、注意main线程和nio线程的切换; 2、initAndRegister 对应 nio中 创建ServerSocketChannel 和 把ServerSocketChannel注册到selector上 3、doBind0 对应 nio中 bind监听端口)// 1. 执行初始化和注册 regFuture 会由 initAndRegister 设置其是否完成,从而回调 3.2 处代码= null) {原创 2025-03-13 21:13:45 · 1244 阅读 · 0 评论 -
netty继承类图
原创 2024-04-21 12:14:47 · 187 阅读 · 0 评论 -
ByteToMessageDecoder&MessageToMessageDecoder&MessageToByteEncoder&MessageToMessageEncoder
ByteToMessageDecoder、MessageToMessageDecoder、MessageToByteEncoder、MessageToMessageEncoder原创 2024-04-20 20:23:51 · 439 阅读 · 0 评论 -
slice/retainedSlice/readRetainedSlice
【代码】slice/retainedSlice/readRetainedSlice。原创 2024-04-17 22:58:42 · 241 阅读 · 0 评论 -
netty实现mqtt(IOT)
springboot+netty+mqtt服务端实现springboot+netty+mqtt客户端实现IOT云平台 simple(6)springboot netty实现IOT云平台基本的架构(mqtt、Rabbitmq)Springboot结合Netty对接硬件,实现主动发送报文和接受硬件报文(ModbusRTU或者TCP以及DTU)原创 2024-04-11 22:18:15 · 1667 阅读 · 0 评论 -
ByteToMessageDecoder & 简单实现netty文件传输
但是,注意:HeadContext中读取的数据可能包含了完整消息,也可能包含不完整的消息,这是不确定的,由底层网络传输决定,我们要做的就是区分出消息边界,然后将完整的消息交给后面的入站处理器,不然的话,入站处理器后面的业务拿到的不是1个完整的消息,就会出问题。而ByteToMessageDecoder就是其中1个比较重要的解码器,也叫一次解码器。因为tcp协议将数据以流的方式传输,但这样就需要自己在应用层手动解决字节数据边界的问题,即拆包和粘包的问题。将流式数据按照商定的协议规则区分的1个完整数据称为。原创 2024-03-17 20:47:42 · 1343 阅读 · 0 评论 -
telnet命令使用
启动netty服务端后,使用如下cmd命令连接服务端,按enter,将连接到netty服务端。发送消息,再断开连接,再退出,netty服务端都能正常响应。原创 2024-03-17 10:19:28 · 543 阅读 · 0 评论 -
netty草图笔记
【代码】netty草图笔记。原创 2024-03-09 17:14:38 · 447 阅读 · 0 评论 -
netty-daxin-5(eventLoop&pipeLine)
这时Netty中极其重要的一个类,必须掌握。原创 2023-12-20 21:49:17 · 383 阅读 · 0 评论 -
netty-daxin-4(http&websocket)
【代码】netty-daxin-4(http&websocket)原创 2023-12-17 00:13:04 · 1318 阅读 · 0 评论 -
netty-daxin-3(rpc远程调用)
【代码】netty-daxin-3(rpc远程调用)原创 2023-12-16 22:14:05 · 224 阅读 · 0 评论 -
netty-daxin-2(netty常用事件讲解)
在这种情况下,可以使用ChannelHandlerContext提供的AttributeKey来解决这个问题(如下所示),但是目前ChannelHandlerContext#attr和ChannelHandlerContext#hasAttr都被弃用了,推荐使用Channel#attr(AttributeKey)和Channel#hasAttr。它下面有2个子接口,并且它们都有对应的适配器类,并且还有1个复合的ChannelDuplexHandler类,用于处理入站io事件和出站io操作。原创 2023-12-16 22:12:43 · 158 阅读 · 0 评论 -
netty-daxin-1(ByteBuf & 编解码器)
【代码】netty。原创 2023-12-03 10:10:39 · 187 阅读 · 0 评论 -
Selector & SelectionKey基础学习
浅浅的学习一下Selector的默认规则。原创 2023-12-02 11:04:39 · 259 阅读 · 0 评论 -
netty websocket学习
42-Netty基础-Websocket-Netty握手源码分析 - B站视频 - 很详细43-FrameDecoder源码分析SpringBoot 整合 Netty + WebsocketSpring boot 项目(二十三)——用 Netty+Websocket实现聊天室springBoot + netty搭建高性能 websocket 服务 & 性能测试(包含python 测试脚本)springBoot使用webSocket的几种方式以及在高并发出现的问题及解决SpringBoot2+Netty原创 2023-11-27 22:02:20 · 587 阅读 · 0 评论 -
NIO 笔记(二)Netty框架专题
Netty并没有使用NIO中提供的ByteBuffer来进行数据装载,而是自行定义了一个ByteBuf类。那么这个类相比NIO中的ByteBuffer有什么不同之处呢?写操作完成后无需进行flip()翻转。具有比ByteBuffer更快的响应速度。动态扩容。...//index被分为了读和写,是两个指针在同时工作//mark操作也分两种//最大容量,没错,这玩意能动态扩容可以看到,读操作和写操作分别由两个指针在进行维护,每写入一次,向后移动一位,每读取一次,也是向后移动一位,当然。原创 2023-11-10 12:58:05 · 416 阅读 · 0 评论 -
NIO 笔记(一)基础内容
【笔记来自:it白马】NIO基础**注意:**推荐完成JavaSE篇、JavaWeb篇的学习再开启这一部分的学习,如果在这之前完成了JVM篇,那么看起来就会比较轻松了。在JavaSE的学习中,我们了解了如何使用IO进行数据传输,Java IO是阻塞的,如果在一次读写数据调用时数据还没有准备好,或者目前不可写,那么读写操作就会被阻塞直到数据准备好或目标可写为止。Java NIO则是非阻塞的,每一次数据读写调用都会立即返回,并将目前可读(或可写)的内容写入缓冲区或者从缓冲区中输出,即使当前没有可用数据,原创 2023-11-08 22:48:17 · 497 阅读 · 0 评论 -
Netty学习(四)
注意发送的数据未必能够一次读完,因此会触发多次 nio read 事件,一次事件内会触发多次 pipeline read,一次事件会触发一次 pipeline read complete。SO_TIMEOUT 主要用在阻塞 IO,阻塞 IO 中 accept,read 等都是无限等待的,如果不希望永远阻塞,使用它调整超时时间。在 linux 2.2 之前,backlog 大小包括了两个队列的大小,在 2.2 之后,分别用下面两个参数来控制。主要任务是执行死循环,不断看有没有新任务,有没有 IO 事件。原创 2023-07-30 16:29:33 · 571 阅读 · 0 评论 -
Netty学习(三)
文章目录三. Netty 进阶1. 粘包与半包1.1 ==粘包==现象服务端代码客户端代码1.2 ==半包==现象服务端代码客户端代码1.3 现象分析粘包半包缘由滑动窗MSS 限制Nagle 算法1.4 解决方案方法1,短链接方法2,固定长度方法3,固定分隔符方法4,预设长度2. 协议设计与解析2.1 为什么需要协议?2.2 redis 协议举例2.3 http 协议举例2.4 自定义协议要素编解码器MessageCodecTestMessageCodec输出💡 什么时候可以加 @Sharable3. 聊原创 2023-07-28 22:04:15 · 542 阅读 · 0 评论 -
Netty学习(二)
二. Netty 入门1. 概述1.1 Netty 是什么?Netty is an asynchronous event-driven network application frameworkfor rapid development of maintainable high performance protocol servers & clients.Netty 是一个异步(netty并没有采用异步io,这里的异步指的是netty使用了多线程,来完成方法的调用和处理结果向分离)的、基原创 2023-07-27 21:45:00 · 637 阅读 · 0 评论 -
Netty学习(一)
文章目录一. NIO 基础1. 三大组件1.1 Channel & Buffer1.2 Selector多线程版设计多线程版缺点线程池版设计线程池版缺点selector 版设计2. ByteBuffer2.1 ByteBuffer 正确使用姿势2.2 ByteBuffer 结构调试工具类示例2.3 ByteBuffer 常见方法分配空间 (allocate)HeapByteBuffer & DirectByteBuffer读写数据向 buffer 写入数据从 buffer 读取数据示例ma原创 2023-07-24 22:12:19 · 409 阅读 · 0 评论 -
BIO、NIO、AIO
在Java的软件设计开发中,通信架构是不可避免的,我们在进行不同系统或者不同进程之间的数据交互,或者在高并发下的通信场景下都需要用到网络通信相关的技术,对于一些经验丰富的程序员来说,Java早期的网络通信架构存在一些缺陷,其中最令人恼火的是基于性能低下的同步阻塞式的I/O通信(BIO),随着互联网开发下通信性能的高要求,Java在2002年开始支持了非阻塞式的I/O通信技术(NIO)。大多数读者在学习网络通信相关技术的时候,都只是接触到零碎的通信技术点,没有完整的技术体系架构,以至于对于Java的通原创 2022-10-06 11:10:17 · 1492 阅读 · 2 评论