
libevent
文章平均质量分 72
libevent 是一个用C语言编写的、轻量级的开源高性能事件通知库。
草上爬
专注技术,热爱分享
展开
-
libevent学习之一:libevent源码的特点和结构
libevent是一个用于开发可扩展性网络服务器的基于事件驱动(event-driven)模型的网络库。Libevent有几个显著的特点: (1)事件驱动(event-driven),高性能;(2)轻量级,专注于网络,不如 ACE 那么臃肿庞大; (3)源代码相当精炼、易读; (4)跨平台,支持 Windows、Linux、*BSD和 Mac Os; (5)支持多种I/O多路复用技术,epoll、poll、dev/poll、select和kqueue等; (6)支持I/O,定时器和信号等事件;原创 2016-10-13 14:36:07 · 4103 阅读 · 0 评论 -
libevent学习之二:Windows下编译libevent
Linux下编译参考源码中的README文件即可,这里主要记录Windows下的编译。一.准备工作去官网下载最新的稳定发布版本libevent-2.0.22-stable官网地址:http://libevent.org/二.使用VS2012编译1.解压libevent到C:\Users\zhang\Desktop\libevent-2.0.22-stable2.打开“VS2012开发人员命令提示”.........原创 2016-10-17 14:42:19 · 8455 阅读 · 0 评论 -
libevent学习之三:简单的服务器和客户端
基于libevent的服务器和客户端。源码默认使用的是MingW版本的libevent头文件和库,也包含Windows版本的libevent头文件和库,后缀为_win。先启动服务器,然后启动客户端,效果如下图所示。原创 2016-10-17 16:26:06 · 11129 阅读 · 2 评论 -
libevent学习之四:基于libevent的定时器
基于libevent的定时器原创 2018-02-11 09:30:22 · 2534 阅读 · 0 评论 -
libevent学习之五:IO - 同步,异步,阻塞,非阻塞
同步(synchronous) IO和异步(asynchronous) IO,阻塞(blocking) IO和非阻塞(non-blocking)IO分别是什么,到底有什么区别?这个问题其实不同的人给出的答案都可能不同,比如wiki,就认为asynchronous IO和non-blocking IO是一个东西。这其实是因为不同的人的知识背景不同,并且在讨论这个问题的时候上下文(context)也不......原创 2016-10-13 09:08:21 · 3058 阅读 · 2 评论 -
libevent学习之六:Reactor模式
学习libevent有助于提升程序设计功力,除了网络程序设计方面外,libevent的代码里有很多有用的设计技巧和基础数据结构,比如信息隐藏、函数指针、c语言的多态支持、链表和堆等等,都有助于提升自身的程序功力。 程序设计不止要了解框架,很多细节之处恰恰也是事关整个系统成败的关键。只对libevent本身的框架大概了解,那或许仅仅是一知半解,不深入代码分析,就难以了解其设...原创 2018-05-24 15:54:58 · 2880 阅读 · 2 评论