博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::

04 2014 档案

摘要:用一个调用链来表示函数调用的流程,看起来更直观。根据上面的分析,总结了一些重要的调用链。初始化event_base_newevent_base_new_with_configmin_heap_ctorevent_deferred_cb_queue_initevmap_io_initmapevmap_... 阅读全文
posted @ 2014-04-21 23:15 黑米 阅读(581) 评论(0) 推荐(0)

摘要:Dispatch类似于一个消息泵,在一个死循环中,不停地检查IO的状态(可以想像成不断从消息队列中读取消息),将状态的改变变成事件,再进行事件的响应。主要代码如下:[event.c]intevent_base_loop(structevent_base*base,intflags){conststr... 阅读全文
posted @ 2014-04-21 23:11 黑米 阅读(1678) 评论(0) 推荐(0)

摘要:libevent2对信号的响应也进行了封装,使之与socket操作一样对外提供统一的接口。这里的信号一般指linux的信号。由于信号与socket相关的编程接口有较大的不同,因此在内部实现也有一些区别。与IO操作(socket算作是IO操作)的evsel类似,在event_base中也定义了信号的操... 阅读全文
posted @ 2014-04-21 23:00 黑米 阅读(1878) 评论(0) 推荐(0)

摘要:本文并不很详细地分析初始化的各个细节,而重点分析如何将底层操作关联到event_base的相关字段。初始化工作主要是针对event_base的。libevent2支持多种底层实现,有epoll, select, iocp等。下面的工作主要是以熟悉的select作为底层实现,分析libevent2的工... 阅读全文
posted @ 2014-04-21 22:24 黑米 阅读(1531) 评论(0) 推荐(0)

摘要:event的本质libevent2中的event的本质是什么?只要是非同步阻塞的运行方式,肯定遵循事件的订阅-发布模型。通过event_new的函数原型可以理解,一个event即代表一次订阅,建立起了fd变化的事件与callback响应函数之间的一个关联。订阅-发布模型有四个方面,事件定义、事件订阅... 阅读全文
posted @ 2014-04-21 22:08 黑米 阅读(1336) 评论(0) 推荐(0)

摘要:说明不清楚的文档,真是害死人了。-------------------------------------------首先来看一段文字:——————————————————–银联直联终端测试中,在POS终端签到的应答报文中,62域是如何规定的? 62域长度应为24或40个字节。对于单倍长密钥算法:前12个字节为PIN的工作密钥的密文,后12个字节为MAC的工作密钥的密文。(其中,前8个字节是密文,后4个字节是checkvalue;用前8个字节解出的明文做key,对8个字节00做单倍长密钥算法,取结果的前四位与checkvalue 的值比较应该是一致的)。 对于双倍长密钥算法:前20个字节为.. 阅读全文
posted @ 2014-04-08 22:40 黑米 阅读(7522) 评论(4) 推荐(1)