本文主要记录在学习Netty4的代码中学习到的知识点,方便后续的查看
第一部分: 服务端ServerBootstrap与客户端BootStrap
ServerBootStrap与BootStrap均继承于AbstactBootStrap,AbstractBootstrap完成了大部分的模板方法,提供抽象方法供服务端和客户端启动类实现
启动流程如下:服务端BIND
InitAndRegister new - channel(包括内部的unsafe,pipleline, readInterestOp(后续再active触发的read中修改selectKey))
channle对象建立后会执行init方法,其中init方法是抽象方法,ServerBootStrap和BootStrap会实现对应的init方法
服务端的channel是NioServerSocketChannel,客户端的channel是NioSocketChannel
init方法包括设置TCP的OPTION参数等,最关键的是服务端和客户端会在init中对pipeline增加不同的ChannelHandler
ServerBootStrap的init方法会将ServerBootstrapAcceptor添加到pipleline中(将连接handler添加到pipleline,将用户配置的childHandler封装到ServerBootstrapAcceptor中)
(ServerBootstrapAcceptor的实际添加过程会封装在Ch
第一部分: 服务端ServerBootstrap与客户端BootStrap
ServerBootStrap与BootStrap均继承于AbstactBootStrap,AbstractBootstrap完成了大部分的模板方法,提供抽象方法供服务端和客户端启动类实现
启动流程如下:服务端BIND
InitAndRegister new - channel(包括内部的unsafe,pipleline, readInterestOp(后续再active触发的read中修改selectKey))
channle对象建立后会执行init方法,其中init方法是抽象方法,ServerBootStrap和BootStrap会实现对应的init方法
服务端的channel是NioServerSocketChannel,客户端的channel是NioSocketChannel
init方法包括设置TCP的OPTION参数等,最关键的是服务端和客户端会在init中对pipeline增加不同的ChannelHandler
ServerBootStrap的init方法会将ServerBootstrapAcceptor添加到pipleline中(将连接handler添加到pipleline,将用户配置的childHandler封装到ServerBootstrapAcceptor中)
(ServerBootstrapAcceptor的实际添加过程会封装在Ch