libevent入门(1)
select()、poll() 或其他机制的基础。而是使用对于每个平台最高效的高性能解决方案在实现外加上一个包装器。int main()
{ int serFd;
struct sockaddr_in serAddr; memset(&serAddr, , sizeof(serAddr));
serAddr.sin_family = AF_INET;
serAddr.sin_addr.s_addr = inet_addr("127.0.0.1");
serAddr.sin_port = htons(); serFd = socket(AF_INET, SOCK_STREAM, );
bind(serFd, (struct sockaddr*)&serAddr, sizeof(serAddr));
listen(serFd, ); //初始化一个event_base
base = event_base_new(); struct event listenEvent; //初始化一个event(事件)结构体,设置事件的文件描述符、事件类型(读IO事件或者写IO事件等)、
//事件被触发后的回调函数onAccept【该函数需要我们自己实现】、回调函数的参数
//EV_PERSIST表示事件的回调函数执行完后,不会把事件listenEvent从base中移除
event_set(&listenEvent, serFd, EV_READ|EV_PERSIST, onAccept, NULL); //给listenEvent事件设置相应的event_base
event_base_set(base, &listenEvent); //把事件添加到队列(就绪队列、active队列等),队列由event对应的event_base管理
event_add(&listenEvent, NULL); //启动轮询
event_base_dispatch(base); return ;
}
回调函数:
//回调函数包含三个参数
//参数1:事件对应的文件描述符
//参数2:事件对应的行为 EV_READ|EV_PERSIST
//参数3:在event_set函数传入的参数的指针
void onAccept(int serFd, short iEvent, void *arg)
{
//listenEvent事件的回调函数
}
libevent入门(1)的更多相关文章
- libevent入门教程
首先给出官方文档吧: http://libevent.org ,首页有个Programming with Libevent,里面是一节一节的介绍libevent,但是感觉信息量太大了,而且还是英文的- ...
- libevent入门
Libevent API =============================== evtimer_new evtimer_new(base, callback, NULL) 用来做定时器,即当 ...
- libevent入门介绍
libevent是之前看到的一个别人推荐的清凉级网络库,我就想了解一下它.今天下载到了一个人写的剖析系列,从结构和源码方面进行了简要分析.只是这个分析文章是2010年的,有点过时了(跟现在的libev ...
- [z]libevent入门教程:Echo Server based on libevent 不指定
[z]https://www.felix021.com/blog/read.php?2068 花了两天的时间在libevent上,想总结下,就以写简单tutorial的方式吧,貌似没有一篇简单的说明, ...
- libevent 入门教程:Echo Server based on libevent(转)
下面假定已经学习过基本的socket编程(socket, bind, listen, accept, connect, recv, send, close),并且对异步/callback有基本的认识. ...
- 【VS开发】【数据库开发】libevent入门
花了两天的时间在libevent上,想总结下,就以写简单tutorial的方式吧,貌似没有一篇简单的说明,让人马上就能上手用的.首先给出官方文档吧: http://libevent.org ,首页有个 ...
- [原]我在Windows环境下的首个Libevent测试实例
libevent对Windows环境也有很好的支持,不过初次学习和编译libevent简单实例,总是有一些陌生感的,只有成功编译并测试了一个实例,才会有恍然大悟的感觉.下面将要讲到的一个实例是我从网上 ...
- 轻量级网络库libevent初探
本文是关于libevent库第一篇博文,主要由例子来说明如何利用该库.后续博文再深入研究该库原理. libevent库简介 就如libevent官网上所写的“libevent - an event n ...
- C++日志操作开源函数库之Google-glog
今天想给我的C++项目找一个开源的日志类,用于记录系统日志,结果浪费了半个下午的时间.从网上搜索相关资料,找到以下几个备选方案: 1.log4cplus 下载地址:http://sourceforge ...
随机推荐
- android:onclick属性
android:onclick属性设置点击时从上下文中调用指定的方法,此时给指定一个方法名.例如: xml中: <Button android:layout_width="wrap_c ...
- mobile优化
原文: http://queue.acm.org/detail.cfm?id=2510122 译文: http://www.w3cfuns.com/forum.php?mod=viewthread&a ...
- Entity Framewor 学习笔记 (Enum)
EF 6 支持Enum 的处理 首先说一下 mysql 和 sql server 的区别 mysql 是有 Enum 这个类型的 , insert 时是放入 int , 出来的时候它会是 string ...
- java疯狂演义----简单java IDE工具
file:commons package org.crazyit.editor.commons; import org.crazyit.editor.EditorFrame; import org.c ...
- 【转】android应用开发全程实录-你有多熟悉listview?---不错
原文网址:http://www.cnblogs.com/noTice520/archive/2011/12/05/2276379.html 今天给大家带来<android应用开发全程实录> ...
- android实现类似于支付宝余额快速闪动的效果
效果如下: 此图片不会动,但实际上是会快速跳动的. 之前看到有支付宝的效果非常牛逼.就是进去看到余额呼噜噜的直接上蹿下跳到具体数字,效果帅,但不知道怎么实现,最近终于知道了. 思路: 首先经常用 ...
- js日期和毫秒相互转换
var date = new Date(); var n = date.valueOf() var date2 = new Date(n); console.info(date.valueOf()); ...
- iOS 时区问题总结 NSTimeZone
基本概念 GMT 0:00 格林威治标准时间; UTC +00:00 校准的全球时间; CCD +08:00 中国标准时间 [来自百度百科] 夏时制,英文"DaylightSavingTim ...
- X Shell 4配色方案[Solarized Dark]
X Shell 4是个很好的Windows下登录Linux服务器的终端,比Putty好用 X Shell 4的下面这种方案,我个人很喜欢 用vim写shell脚本的效果: 按如下步骤配置: 1)把下面 ...
- [React Testing] JSX error diffs -- expect-jsx library
When writing React component tests, it can be hard to decipher the error diffs of broken tests, sinc ...