多路IO转接
文章平均质量分 58
多路IO转接
linuxcpp_
这个作者很懒,什么都没留下…
展开
-
epoll反应堆思想
epoll反应堆思想1 epoll反应堆思想2 epoll反应堆代码实现1 epoll反应堆思想epoll还有一种更高级的使用方法,那就是借鉴封装的思想,简单的说就是当某个事情发生了,自动的去处理这个事情。这样的思想对我们的编码来说就是设置回调,将文件描述符,对应的事件,和事件产生时的处理函数封装到一起,这样当某个文件描述符的事件发生了,回调函数会自动被触发,这就是所谓的反应堆思想。从我们之前对epoll的使用上如何去支持反应堆呢?需要重新再认识一下struct epoll_event中的epoll_原创 2021-04-22 00:40:05 · 567 阅读 · 0 评论 -
epoll进阶--事件模型(LT/ET)
epoll进阶--事件模型1 事件模型2 ET和LT比较3 示例3.1 基于管道epoll ET触发模式3.2 基于网络C/S模型的epoll ET触发模式3.3 基于网络C/S非阻塞模型的epoll ET触发模式 ★★1 事件模型EPOLL事件有两种模型:Edge Triggered (ET) 边缘触发只有数据到来才触发,不管缓存区中是否还有数据。Level Triggered (LT) 水平触发只要有数据都会触发。(epoll默认为LT模式)思考如下步骤:假定我们已经把一个用来从管转载 2021-04-21 00:50:39 · 334 阅读 · 0 评论 -
epoll
epoll1 epoll 相关函数2 epoll实现多路IO转接(代码)1 epoll 相关函数epoll_create 函数#include <sys/epoll.h>int epoll_create(int size) /* * function: 创建一个epoll句柄(创建一颗红黑树) * * function arguments: * argv1: 监听数目(创建的红黑树的监听节点数量) 【仅供内核参考】 * * ruturn value: * su原创 2021-04-20 21:51:07 · 233 阅读 · 0 评论 -
poll
poll1 poll 函数原型2 poll实现多路IO转接(代码)3 poll优缺点4 突破1024限制1 poll 函数原型#include <poll.h>int poll(struct pollfd *fds, nfds_t nfds, int timeout);struct pollfd { int fd; /* 文件描述符 */ short events; /* 监控的事件 */ short revents;原创 2021-04-16 00:24:01 · 206 阅读 · 0 评论 -
select
select1 select 函数原型2 select实现多路IO转接(代码)3 select优缺点4 优化1 select 函数原型#include <sys/select.h>/* According to earlier standards */#include <sys/time.h>#include <sys/types.h>#include <unistd.h>int select(int nfds, fd_set *readfds,原创 2021-04-12 22:09:12 · 105 阅读 · 0 评论