- 1
- 2
- 3
- 4
- 5
libevent的bufferevent自动化的网络流封装.docx
资料介绍
libevent 的 bufferevent:自动化的网络流封装
从手动拼 I/O 到自动数据流
用裸的 event 做网络编程,需要自己处理很多细节:读就绪了要手动 read,写就绪了要手动 write,还要处理 EAGAIN、粘包、内存管理。这些重复劳动又繁琐又容易出错。
bufferevent 是 libevent 站在 event 之上提供的高级封装。它自带输入和输出缓冲,数据自动填充和排空,让开发者不再直接处理底层 I/O,而是从输入缓冲读、向输出缓冲写。这篇文章把 bufferevent 的机制讲清楚。
bufferevent 的结构
bufferevent 的核心,是它内部包含的两个 evbuffer 指针。
一个输入缓冲区,底层可读时,数据自动读入这里,然后触发读回调。
一个输出缓冲区,用 bufferevent_write 向这里追加数据,底层可写时自动下发,排空后触发写回调。
bufferevent 还维护读和写的水位,控制内存使用和回调频率。
bufferevent 的读方向
读方向上,bufferevent 自动处理底层的数据读取。
当底层可读时,bufferevent 会自动把数据读入输入缓冲,然后调用注册的读回调。开发者不需要自己调用 read,直接在读回调里从输入缓冲取数据即可。
读回调的触发,受低水位控制。只有当输入缓冲的数据量达到低水位,才触发读回调,避免频繁回调。
bufferevent 的写方向
写方向上,bufferevent 自动管理数据的下发。
开发者用 bufferevent_write 向输出缓冲追加数据,不需要关心底层何时可写。bufferevent 会在底层可写时,自动把输出缓冲的数据下发出去。
当输出缓冲排空到低于写低水位时,触发写回调。写回调可以用于通知"数据已写完",比如写完后关闭连接。
部分文件列表
| 文件名 | 大小 |
| libevent的bufferevent自动化的网络流封装.docx | 38K |
最新上传
-
21ic小能手 打赏10.00元 1天前
-
21ic小能手 打赏8.00元 1天前
-
21ic小能手 打赏8.00元 1天前
-
21ic小能手 打赏5.00元 1天前
-
21ic小能手 打赏3.00元 1天前
-
tangyu1 打赏1.00元 3天前
-
jjjjkkkkk 打赏1.00元 3天前
-
emlimei 打赏1.00元 3天前
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏3.00元 3天前
资料:低频功率放大器的设计.
-
21ic小能手 打赏3.00元 3天前
-
21ic小能手 打赏3.00元 3天前
-
21ic小能手 打赏3.00元 3天前
-
21ic小能手 打赏3.00元 3天前
-
21ic小能手 打赏5.00元 3天前
资料:51单片机数字频率计
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏5.00元 3天前
-
13573902396 打赏1.00元 3天前
-
21下载积分 打赏310.00元 3天前
用户:江岚
-
21下载积分 打赏310.00元 3天前
用户:潇潇江南
-
21下载积分 打赏60.00元 3天前
用户:他山之石可攻玉
-
21下载积分 打赏310.00元 3天前
用户:小猫做电路
-
21下载积分 打赏210.00元 3天前
用户:zhengdai
-
21下载积分 打赏210.00元 3天前
用户:w993263495
-
21下载积分 打赏10.00元 3天前
用户:烟雨
-
21下载积分 打赏60.00元 3天前
用户:gsy幸运
-
21下载积分 打赏70.00元 3天前
用户:铁蛋锅
-
21下载积分 打赏65.00元 3天前
用户:xzxbybd
-
21下载积分 打赏60.00元 3天前
用户:jh0355
-
21下载积分 打赏60.00元 3天前
用户:w178191520
-
21下载积分 打赏20.00元 3天前
用户:jh03551
-
21下载积分 打赏20.00元 3天前
用户:sun2152
-
21下载积分 打赏20.00元 3天前
用户:kk1957135547
-
21下载积分 打赏25.00元 3天前
用户:w1966891335
-
21下载积分 打赏20.00元 3天前
用户:xuzhen1
-
21下载积分 打赏15.00元 3天前
用户:x15580286248
-
21下载积分 打赏25.00元 3天前
用户:pcb
-
21下载积分 打赏20.00元 3天前
用户:bhacker
-
21下载积分 打赏15.00元 3天前
用户:liqiang9090




全部评论(0)