摘要:用一个调用链来表示函数调用的流程,看起来更直观。根据上面的分析,总结了一些重要的调用链。初始化event_base_newevent_base_new_with_configmin_heap_ctorevent_deferred_cb_queue_initevmap_io_initmapevmap_...
阅读全文
04 2014 档案
摘要:Dispatch类似于一个消息泵,在一个死循环中,不停地检查IO的状态(可以想像成不断从消息队列中读取消息),将状态的改变变成事件,再进行事件的响应。主要代码如下:[event.c]intevent_base_loop(structevent_base*base,intflags){conststr...
阅读全文
摘要:libevent2对信号的响应也进行了封装,使之与socket操作一样对外提供统一的接口。这里的信号一般指linux的信号。由于信号与socket相关的编程接口有较大的不同,因此在内部实现也有一些区别。与IO操作(socket算作是IO操作)的evsel类似,在event_base中也定义了信号的操...
阅读全文
摘要:本文并不很详细地分析初始化的各个细节,而重点分析如何将底层操作关联到event_base的相关字段。初始化工作主要是针对event_base的。libevent2支持多种底层实现,有epoll, select, iocp等。下面的工作主要是以熟悉的select作为底层实现,分析libevent2的工...
阅读全文
摘要:event的本质libevent2中的event的本质是什么?只要是非同步阻塞的运行方式,肯定遵循事件的订阅-发布模型。通过event_new的函数原型可以理解,一个event即代表一次订阅,建立起了fd变化的事件与callback响应函数之间的一个关联。订阅-发布模型有四个方面,事件定义、事件订阅...
阅读全文
摘要:说明不清楚的文档,真是害死人了。-------------------------------------------首先来看一段文字:——————————————————–银联直联终端测试中,在POS终端签到的应答报文中,62域是如何规定的? 62域长度应为24或40个字节。对于单倍长密钥算法:前12个字节为PIN的工作密钥的密文,后12个字节为MAC的工作密钥的密文。(其中,前8个字节是密文,后4个字节是checkvalue;用前8个字节解出的明文做key,对8个字节00做单倍长密钥算法,取结果的前四位与checkvalue 的值比较应该是一致的)。 对于双倍长密钥算法:前20个字节为..
阅读全文

浙公网安备 33010602011771号