| 注册
请输入搜索内容

热门搜索

Java Linux MySQL PHP JavaScript Hibernate jQuery Nginx
jopen
11年前发布

libevent 一个简单的event示例

libevent的一个入门event示例及说明。本示例程序使用libevent监控一个处于监听状态的tcp服务端socket,
并在有连接进来时打印一条消息。

 #include <event.h>      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;   }

 本文由用户 jopen 自行上传分享,仅供网友学习交流。所有权归原作者,若您的权利被侵害,请联系管理员。
 转载本站原创文章,请注明出处,并保留原始链接、图片水印。
 本站是一个以用户分享为主的开源技术平台,欢迎各类分享!
 本文地址:https://www.open-open.com/lib/view/open1393244587990.html
libevent 网络工具包