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库。然后去实现自己的网络库。我认为这算是指出了一个比较明确的学习路线。

猜你喜欢

转载自blog.csdn.net/weixin_43468441/article/details/91956882