Netty3 源码分析 - 套接字绑定实现原理
来源:互联网 发布:浙江灯具进出口数据 编辑:程序博客网 时间:2024/05/27 00:48
前面关注的地方都是Netty采用的流水线处理方式的组织方式,ChannelHandler如何管理,通道状态,通道事件等这些上层的架构设计,那么Netty中如何实现诸如套接字绑定,连接,关闭等这些底层的操作呢?不能只顾着套用API写程序,却对细节不求甚解。这里大致追踪下OIO模式下Channel中套接字绑定的实现,(NIO以后分析)其实逻辑都是一样的,只是在线程模型的地方时不同的。
大致过程如下(详细的源码注释,看我的github):
1.我们在通过Bootstrap启动客户端或者服务端的时候会提供相应的ChannelFactory;
2.在这个Factory构造的过程中会得到相应的外部资源,和初始化底层的ChannelSink对象,否则的话一个Pipeline默认的Sink是DiscardingChannelSink没有任何公用;
3.Bootstrap的绑定方法打开通道,而后调用通道的bind方法;
4.绑定方法最终同意由Channels辅助类完成;
4.Channels.bind根据state和value构造一个state event,发送到最下面的DownstreamHandler;
4.那么这些命令都会最终由具体的ChannelSink来完成,因为具体的Channel中维护的是Java Socket以及输入输出流,所以这里就是真正的套接字绑定。
0 0
- Netty3 源码分析 - 套接字绑定实现原理
- Netty3 源码分析 - NIO server绑定过程分析
- Netty3源码原理
- Netty3 源码分析 - Channel
- Netty3 源码分析 - AbstractChannel
- Netty3 源码分析 - ChannelHandler
- Netty3 源码分析 - ChannelHandlerContext
- Netty3 源码分析 - ChannelEvent
- Netty3 源码分析 - ChannelState
- Netty3 源码分析 - ChannelStateEvent
- Netty3 源码分析 - OioClientSocketChannelFactory
- Netty3 源码分析 - ClientBootstrap
- Netty3 源码分析 - ChannelPipeline
- Netty3 源码分析 - ChannelFuture
- Netty3 源码分析 - ChannelUpstreamHandler
- netty3 源码分析解
- netty3.2.3源码分析--ServerBootstrap启动分析
- netty3.2.3源码分析-ClientBootstrap启动分析
- cuda访谈
- 应收发票没有到总帐
- 运放的关键参数
- 图片和文字透明问题
- Android Library Project 使用问题总结
- Netty3 源码分析 - 套接字绑定实现原理
- 纹身时应该注意的一些事项
- 有关linux系统登录出现启动会话失败
- Longest Valid Parentheses
- matlab的功率谱计算
- jquery easyui 获取某一页签内的某一元素
- 世界为什么是五彩缤纷
- php 数组 对象 转换
- MyMFC(7-9)对话框 CMainFrame