• libevent入门篇


    libevent作为一个c网络库具有非常好的可移植性。由于他包括了非常多可移植的接口封装如linux支持的epoll、select。BSD支持的kqueue,window select等。

    学习libevent最好的方式就是阅读源代码,首先我们须要看一下libevent的官方站点介绍首先对其有一个了解。介绍是英文写的非常好,这里给个链接http://libevent.org/。

            看完这个链接后我们事实上须要继续学习一下什么叫做异步IO, libevent是这么称呼的,事实上IO一共同拥有五种,各自是堵塞IO、非堵塞IO、IO复用、异步IO、信号IO。

    这个在UNIX网络编程里面都有介绍。

    libevent这里指的异步IO事实上和IO复用是一个意思。我们临时能够先这样理解。linux里面的异步IO事实上调用的诸如aio_read之类的接口。read之后并不直接返回数据,当数据真正被读取后,内核会告诉用户数据已经从内核复制到了用户空间。libevent之所以叫做异步IO是由于整个框架是基于事件的注冊和响应这个层面来讲的。首先须要将描写叙述符设置为非堵塞状态,然后将它注冊相应的事件以及事件回调函数。

    当事件发生时回调函数開始运行,事实上这就是linux下epoll的一个封装,仅仅只是libevent给做的接口更加好用方便而已,这就是我的初步理解啦。

           libevent里面解说它的异步IO的文章在这里。里面讲的非常具体,从最開始的堵塞到select再到epoll,再到libevent的具体代码,步步深入,大家学习的时候最好还是看看官方给的样例。给个链接。

    http://www.wangafu.net/~nickm/libevent-book/01_intro.html

          后面的開始动手写一个简单的server吧,參考官方的api手冊。必要的话能够看下源代码哦,加油

  • 相关阅读:
    Win7系统下搭建Tomcat服务器
    转:在线框架引用 bootstrap/jq/jqmobile/css框架
    转:Web.config配置文件详解
    转:HTML和Web窗体的区别
    在VS2010中创建网站并发布
    nohup 借助cronolog进行日志分割 Linux
    Linux (centos 8) 安装nginx1.20
    Ubuntu 安装使用yum--转载
    C# 字符串插值内部工作原理
    Linux 安装MySQL
  • 原文地址:https://www.cnblogs.com/wgwyanfs/p/7159292.html
Copyright © 2020-2023  润新知