<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[cool_tone的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/cool_tone</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; cool_tone]]></copyright><item><title><![CDATA[Netty源码分析——服务端channle的初始化（二）]]></title><link>https://blog.youkuaiyun.com/cool_tone/article/details/105614979</link><guid>https://blog.youkuaiyun.com/cool_tone/article/details/105614979</guid><author>cool_tone</author><pubDate>Sun, 19 Apr 2020 14:54:17 +0800</pubDate><description><![CDATA[上一条博客分析了服务端channel的创建，接着讲一下服务端channel的初始化。
还是从用户代码的bind()方法开始跟，通过doBind()的initAndRegister()方法，里头有个init(channle)，
对应服务端就是ServerBootstrap的init()方法，我们看一下这个方法源码
void init(Channel channel) throws Exception...]]></description><category></category></item><item><title><![CDATA[Netty源码分析——服务端channle的创建（一）]]></title><link>https://blog.youkuaiyun.com/cool_tone/article/details/105614270</link><guid>https://blog.youkuaiyun.com/cool_tone/article/details/105614270</guid><author>cool_tone</author><pubDate>Sun, 19 Apr 2020 14:16:32 +0800</pubDate><description><![CDATA[首先我们看一下正常netty服务端启动的代码
public void server(int port) throws Exception {
        final ByteBuf buf = Unpooled.copiedBuffer("hello", Charset.forName("UTF-8"));
        EventLoopGroup bossGroup = new NioE...]]></description><category></category></item><item><title><![CDATA[Netty核心组件和设计]]></title><link>https://blog.youkuaiyun.com/cool_tone/article/details/105597821</link><guid>https://blog.youkuaiyun.com/cool_tone/article/details/105597821</guid><author>cool_tone</author><pubDate>Sat, 18 Apr 2020 14:38:09 +0800</pubDate><description><![CDATA[Channel——Socket
EventLoop——控制流、多线程处理、并发
ChannleFuture——异步通知

这三个类结合起来可以被认为是netty网络抽象的代表。
Channle接口
基本的IO操作依赖于底层网络传输所提供的原语，对应java网络编程的Socket。Netty接口所提供的api，大大降低了直接使用Socket的复杂性，此外，Channel还拥有许多预定义的、专门实现...]]></description><category></category></item></channel></rss>