C/C++网络
文章平均质量分 57
Wu_Patrick
奔跑在二进制空间里的小菜鸟641969994
展开
-
libhv学习笔记7:IO事件之write事件
今天主要分析下libhv中的IO事件中的写事件的过程。如有理解错误,欢迎批评指正。还是先看接上一篇的源码int main(){ hloop_t* loop = hloop_new(0); // 客户端fd int connFd = ConnectTimeout("127.0.0.1",1234); //io事件 hio_t * hio = hio_get(loop,connFd); //设置read 回调函数 hio_setcb_read原创 2021-05-16 20:16:26 · 851 阅读 · 0 评论 -
libhv学习笔记6:IO事件之read事件
今天主要分析下IO事件中的读事件的过程。如有理解错误,欢迎批评指正。int main(){ hloop_t* loop = hloop_new(0); // 客户端fd int connFd = ConnectTimeout("127.0.0.1",1234); //io事件 hio_t * hio = hio_get(loop,connFd); //设置read 回调函数 hio_setcb_read(hio,on_rev); /原创 2021-05-13 21:13:14 · 884 阅读 · 0 评论 -
libhv学习笔记5:heap.h分析
上一篇分析了libhv里面用到的链表的实现,今天我们看一下定时器超时事件中用到的堆得实现。堆定义1.堆中的某个节点总是不大于或不小于其父亲节点2.堆总是一颗完全二叉树那么,最大堆就是父节点比每一个子节点值都要大。最小堆就是父节点比每一个子节点值要小。例子(最小堆)完全二叉树的定义对于一个树高为h的二叉树,如果其第0层至第h-1层的节点都满。如果最下面一层节点不满,则所有的节点在左边的连续排列,空位都在右边。这样的二叉树就是一棵完全二叉树源码分析结构体的定义struct heap原创 2021-05-02 17:38:59 · 873 阅读 · 4 评论 -
libhv学习笔记4:list.h分析
在libhv中,用到了链表的数据结构(比如说,struct hloop_s中的 struct list_head idles),其定义和实现在list.h中。首先看一下结构体:struct list_head { struct list_head *next, *prev;};#define list_node list_head可以看到,只包含了两个指针,而没有数据域,后面看一下到底是怎么使用的。初始化结构体static inline void list_ini原创 2021-04-28 21:27:40 · 461 阅读 · 0 评论