zoukankan      html  css  js  c++  java
  • 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手冊。必要的话能够看下源代码哦,加油

  • 相关阅读:
    在Eclipse上实现简单的JDBC增删查改操作
    Java学习路线:day12 面向对象(中)
    Java学习路线:day11 客户信息管理软件
    Android个人手机通讯录开发详解
    解决:keeps stopping(停止运行)
    Java学习路线:day10 面向对象(上)3
    2020最新版大数据学习路线
    Java学习路线:day9 面向对象(上)2
    一个简单的ASP登录页面
    Python笔记_第四篇_高阶编程_检测_2.对类进行单元检测
  • 原文地址:https://www.cnblogs.com/wgwyanfs/p/7159292.html
Copyright © 2011-2022 走看看