libevent学习路线

libevent学习路线

每个网络编程的初学者在寻找阅读源码的时候,大部分人都会被建议去看libevent。我这里的初学者指的是看过且用过大部分基础网络api。使用阻塞IO实现过简单的

  1. discard服务器
  2. echo服务器
  3. 聊天服务器
  4. ftp服务器
    这个时候可以认为你现在是遇到门槛了,用玄幻小说的话来说,你该渡劫了。我们知道,每当渡劫的时候,都要跳出自己的舒适区,去跨一个不小的门槛。而大部分其实是不愿跨的。而这里我就给大家提供下我的渡劫路线。

学习路线

  1. 先使用libevent,作为初学者,我个人不建议上来就看源码,除非你功力比较深厚,像我这样。(^.^ )。简单地利用libevent实现一个echo服务器和聊天服务器后。接下来你要去了解几个概念。
  2. 明白利用函数指针去实现回调函数的思想
  3. 明白reactor模式,能够用c语言写一个简单的reactor出来。
  4. 然后我建议去看张亮的《libevent源码深度剖析》,这里的版本比较老,所以记得在github下载的时候别去下最新的,先找第一个大的稳定版本开始看。还有《linux高性能服务器》
    • 你要明白libevent是如何将定时器,信号,文件描述符统一为事件的。在《Linux高性能服务器》中有详细介绍
  5. 我个人认为,你要找准重点,就是明白Reactor中的三大组件是怎么进行状态变换和消息通知的。其它比如锁,Buffer,数据结构的实现不是重点。
  6. 接下来,你就可以去看官方文档了,按照它的介绍,了解更多libevent的细节。
  7. 最后一个更加详细的专栏libevent专栏

如果能够看完这些,我认为libevent的精髓已经了解到了,接下来更加推荐的是去看muduo库。然后去实现自己的网络库。我认为这算是指出了一个比较明确的学习路线。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值