博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
libevent 一个简单的event示例
阅读量:6819 次
发布时间:2019-06-26

本文共 976 字,大约阅读时间需要 3 分钟。

hot3.png

本示例程序使用libevent监控一个处于监听状态的tcp服务端socket,

并在有连接进来时打印一条消息。

 #include 
  int sock_fd;       // tcp侦听句柄  // 事件回调函数,当有socket连接时执行 void event_occurs(int fd, short evt, void *arg) {  if ( evt == EV_READ && fd == sock_fd )      printf("new connection\n");  else if ( evt == EV_TIMEOUT)      printf("event timeout\n"); }  int main (int argc, char **argv) {  int sock_fd = open_server_socket();  // 调用一个自定义的socket端口侦听函数                                       // 返回socket句柄。        struct event evt;     // 声明一个event  struct timeval timeout = {30, 0}; // 设置一次event超时为30秒  event_init();         // 初始化当前libevent, 在调用其他libevent函数之前调用一次    // 将socket句柄、监控的触发事件(EV_READ),事件发生后的回调函数、  // 回调函数参数,绑定到evt中。  event_set(&evt, sock_fd, EV_READ, event_occurs, NULL);    event_add(&evt, &timeout);  // 设置一次监控的超时时间  event_dispach();    // 执行事件监控,直至超时或事件发生                      // 如果要在事件发生后连续执行,需要重新add和dispatch    close(sock_fd);  return 0; }

转载于:https://my.oschina.net/luckysym/blog/201982

你可能感兴趣的文章
Linux ssh安全设置
查看>>
LVM逻辑卷管理
查看>>
ubuntu:重装之后软件安装流程
查看>>
python读写不同编码txt文件
查看>>
Linux 基本命令(持续更新ing)
查看>>
java基础必备单词讲解 day six
查看>>
第7章 SpringMVC高级技术
查看>>
C语言结构体里的成员数组和指针
查看>>
【转】AlphaGo Zero 和强人工智能
查看>>
二维凸包
查看>>
怎么用SQL查询昨天、今天、明天和本周的记录?又怎么用SQL查询一天,三天,一周,一个月,更长一些——一个季度的记录呢...
查看>>
c 冒泡排序
查看>>
P2440 木材加工(二分+贪心)
查看>>
hadoop学习笔记(二)
查看>>
amoeba安装与实现amoeba for mysql读写分离
查看>>
结对编程--四则运算改进版(107,120)
查看>>
点击效果,
查看>>
CSS水平居中的三种方法
查看>>
刚发现的取色工具
查看>>
python全局解释器锁-----GIL
查看>>