reactor模式透彻理解和难点解析
来源:互联网 发布:淘宝摇一摇 编辑:程序博客网 时间:2024/05/17 22:18
网上reactor模式的解析文章很多,但是都很范范,看了以后感觉理解的还是很模糊。
图片待传
今天遇到一个问题:
Initiation Dispatcher根据handle选择Event handler的,为什么调用select (handlers);?
首先handle不等于type,handle是fd(socket打开的描述符)
Initiation Dispatcher根据type选择Event handler,然后调用get_handle()得到操作系统需要的fd,根据fd得到
是哪一个socket客户端发送的请求。handle_event进行事件处理。
1、注册事件ACE_Reactor::register_handler()上注册一个事件,注册的事件类型相当于收货地址(Reactor会根据
注册的事件类型调用对应的挂钩方法),register_handler的第一个参数是ACE_Event_Handler指针,第二个参数是
注册的事件类型。
ACE_Reactor::instance()->register_handler(this,ACE_Event_Handler::READ_MASK);
2、仅有收货地址是不够的,还需要指定收货人。由于ACE_Event_Handler是虚基类,我们需要在子类中提供收货人实
体。假设需要接收的物品为数据流,可以定义实体ACE_SOCK_Stream m_Peer。将ACE_SOCK_Stream收货人信息通知
给某宝的方法是get_handle,使用方法如下:
ACE_HANDLE CClass::get_handle (void) const
{
return m_Peer.get_handle ();
};
3、收到了货物,试用了后觉得还不错,给予反馈,客户端继续送;或者通知客户端不要再送该类物品。
参考:
ace_event_handler
http://www.cnblogs.com/hgwang/p/5874675.html
http://blog.csdn.net/win2ks/article/details/2613021
http://blog.csdn.net/xiajun07061225/article/details/9250579
文件描述符与打开文件的关系
http://blog.csdn.net/cywosp/article/details/38965239
- reactor模式透彻理解和难点解析
- netty源码分析(六)Reactor模式透彻理解及其在Netty中的应用
- Reactor模式和NIO
- Reactor模式和NIO
- Reactor模式和NIO
- Proactor和Reactor模式
- Reactor模式和NIO
- Reactor模式和NIO
- Proactor和Reactor模式
- Reactor模式和NIO
- reactor和proactor模式
- Reactor和Proactor模式
- Reactor模式和NIO
- reactor和proactor模式
- Reactor模式和NIO
- Reactor 和 Proactor 模式
- Reactor模式和NIO
- Proactor和Reactor模式
- 如何选择web前端培训机构?
- bootstrap实现标签页,鼠标滑过激活当前选项卡。
- 请手动释放你的资源
- 深入理解python中的元类
- FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. org/bson/convers
- reactor模式透彻理解和难点解析
- 英语-音标-1
- 机器学习技法课程学习笔记13-- Deep Learning
- Java DecimalFormat 用法(数字格式化)
- eclipse下载svn,导入项目,并操作
- Batch Normalization 学习笔记
- 设计模式-备忘录模式
- retrofit上传获取文件上传进度
- Android 自定义View(二),点,线的绘制