首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
Netty
订阅
砸了你的缸
更多收藏集
微信扫码分享
微信
新浪微博
QQ
11篇文章 · 0订阅
Netty源码分析系列之writeAndFlush()下
在上一篇文章中(Netty 源码分析系列之 writeAndFlush()上)分析了 netty 将数据写出流程的前半部分:write()方法源码,知道了在这个过程中,数据只是被存放到了 NioSocketChannel 对象的 ChannelOutboundBuffer 缓冲…
Netty源码分析系列之writeAndFlush()上
前两篇文章中分析了 netty 中解码器相关的源码,解码过程是发生在读数据这一步的,那么读到数据,经过解码器解码后,最终就会交由我们自定义的业务处理中执行,当我们的业务逻辑处理完成后,就需要给客户端响应消息,这就涉及到服务端如何通过 channel 将响应消息写出去的流程了,同…
backlog与TCP三次握手之间不得不说的事
前段时间在学习 netty 源码的时候,遇到了一个知识点:在服务端套接字创建的过程中,可以通过 option() 方法为服务端 channel 设置 TCP 相关的参数,例如:ChannelOption.SO_BACKLOG,该参数就是设置 tcp 的 backlog 属性的值…
Netty源码分析系列之新连接的接入
当 netty 的服务端启动以后,就可以开始接收客户端的连接了。那么在 netty 中,服务端是如何来进行新连接的创建的呢?在开始进行源码阅读之前,可以先思考以下三个问题。 在上一篇文章Netty 源码分析系列之 NioEventLoop 的执行流程中,分析了 NioEvent…
Netty源码分析系列之NioEventLoop的执行流程
在上一篇文章中分析了NioEventLoop的创建以及启动过程的源码,在文章结尾处提到,当NioEventLoop线程启动以后,会一直在一个无限 for 循环中一直循环,至死方休,那么在循环中,NioEventLoop到底在循环处理什么呢?这将是本文分析的重点。同时,还是先思考…
Netty源码分析系列之NioEventLoop的创建与启动
前三篇文章分别分析了 Netty 服务端 channel 的初始化、注册以及绑定过程的源码,理论上这篇文章应该开始分析新连接接入过程的源码了,但是在看源码的过程中,发现有一个非常重要的组件:NioEventLoop,出现得非常频繁,以至于影响到了后面源码的阅读,因此决定先分析下…
Netty源码分析系列之服务端Channel的端口绑定
由于 Netty 是对 JDK 原生 NIO 的封装,对比 JDK 原生 NIO 的写法,我们可以先思考一下以下两个问题。 在 JDK 原生的 NIO 写法中,在将 ServerSocketChannel 注册到多路复用器 Selector 上时,就将 ServerSocket…
Netty源码分析系列之服务端Channel注册
在上一篇文章Netty源码分析系列之服务端Channel初始化中,分析了在init(channel)方法中,向pipeline添加了一个匿名类:ChannelInitializer,在该匿名类的initChannel(channel)方法中,执行了很重要的逻辑:向pipelin…
Netty源码分析系列之服务端Channel初始化
老规矩,Netty的源码很难、很复杂,为了更快的学懂新的知识,所以还是带着问题来学习源码。 Netty作为一款基于事件驱动的高性能网络框架,其底层实际上仍然使用的是JDK里面的NIO,Netty在JDK的NIO上做了大量优化,以及封装,降低了开发人员使用NIO的难度。 使用JD…
Netty源码分析之LengthFieldBasedFrameDecoder
上面这类数据包协议比较常见的,前面几个字节表示数据包的长度(不包括长度域),后面是具体的数据。拆完之后数据包是一个完整的带有长度域的数据包(之后即可传递到应用层解码器进行解码),创建一个如下方式的LengthFieldBasedFrameDecoder即可实现这类协议 2. 长…