Linux网络编程
打工的社畜
这个作者很懒,什么都没留下…
展开
-
【linux网络编程】epoll函数
介绍: 通常来说,实现处理tcp请求,为一个连接一个线程,在高并发的场景,这种多线程模型与Epoll相比就显得相形见绌了。epoll是linux2.6内核的一个新的系统调用,epoll在设计之初,就是为了替代select, poll线性复杂度的模型,epoll的时间复杂度为O(1), 也就意味着,epoll在高并发场景,随着文件描述符的增长,有良好的可扩展性。 select和poll监听文件描述符list,进行一个线性的查找 O(n) epoll: 使用了内核文件级别的回调机制O(1) 头文件:...转载 2020-07-08 09:23:51 · 187 阅读 · 0 评论 -
【Linux网络编程】poll函数
作用: 监视并等待多个文件描述符的属性变化。 函数原型: int poll(struct pollfd *fds, nfds_t nfds, int timeout); 函数参数意义: fds:指向一个结构体数组的第0个元素的指针,每个数组元素都是一个struct pollfd结构,用于指定测试某个给定的fd的条件。 struct pollfd{ int fd; //文件描述符 short events; //等待的事件 short revents; //实际发生的事件 }; n转载 2020-07-07 09:26:18 · 234 阅读 · 0 评论 -
【Linux网络编程】select函数详解
作用: select函数是用来监视一个或多个文件句柄的状态变化的,可阻塞也可不阻塞。 函数原型: int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout); 函数参数意义: fd_max:传入的监视文件描述符集合中最大的文件描述符数值 + 1,因为select是从0开始一直遍历到数值最大的标识符。 readfds:文件原创 2020-07-07 09:16:40 · 560 阅读 · 0 评论