Libevent触发模式
来源:互联网 发布:cda数据分析师报名费用 编辑:程序博客网 时间:2024/06/01 08:35
问题:
文档说Libevent默认是LT触发的,但这个说法并不完整。
看以下两段代码:
1. 使用struct event的读回调
voidev_read_cb(evutil_socket_t fd, short event, void *arg) { char str[2048]; int len = read(fd, str, 2); str[len]='\0'; printf("Srv recv :%s\n",str);}
event客户端发送:
event服务端接收:
2. 使用struct event的读回调
void bev_read_cb(struct bufferevent *bev, void *ctx) { char *str; str = malloc(1024); size_t len =bufferevent_read(bev, str, 2); str[len] = '\0'; printf("Srv recv:\"%s\"\n",str); printf("Bufferevent-input remain:%d Bytes\n",evbuffer_get_length(bufferevent_get_input(bev)));}
bufferevent客户端发送:
bufferevent服务端接收:
结论:
基于文件描述符的读回调确实是LT触发的。bufferevent底层也是LT触发的,bufferevent底层会尽量读去来自网络的数据,放到input evbuffer中。
但基于bufferevent的读回调则类似ET触发,用户绑定在bufferevent上触发的读回调如果没有一次读走bufferevent下input evbuffer中的数据,则除非再次有网络数据到达,否则不会触发读回调。
0 0
- Libevent触发模式
- 试用libevent的事件触发
- Libevent多种触发机制的实现
- libevent使用event事件触发服务端实例
- [libevent]Reactor反应器设计模式
- libevent之Reactor模式详解
- libevent的epoll模式剖析
- libevent evsignal_new() 信号事件回调函数未被触发。
- libevent
- libevent
- libevent
- libevent
- libevent
- libevent
- libevent
- libevent
- libevent
- libevent
- 算法学习笔记之概率算法
- Bellman-ford algorithm to find the shortest path
- iTunesconnect 审核被拒经验总结
- 一个很不错的H5动画网站
- Java集合总结
- Libevent触发模式
- 代码格式总结和感想
- 微信分享接口内容限制 分享图片自己能看见别人看不见
- 业务代理模式
- javascript异步编程(一)
- 最好的Angular2表格控件
- to_char()----用法
- DAY10_USE OF TOOL
- AWS搭建VPN记录