网络编程
文章平均质量分 77
ThorKing01
这个作者很懒,什么都没留下…
展开
-
完成端口IOCP
完成端口IOCP模型学习原创 2022-10-24 21:23:18 · 949 阅读 · 1 评论 -
I/O复用之epoll
简而言之,epoll通过维护一个红黑树和一个双端链表来解决了select和poll的缺点。能够完成大批量连接的高并发,O(1)的速度响应已就绪连接。函数声明epoll_create//创建epoll对象int epoll_create(int size); 创建一个event_poll对象的句柄,size用来告诉内核这个监听的数目一共有多大,这个参数不同于select()中的第一个参数,给出最大监听的fd+1的值,参数size并不是限制了epoll所能监听的描述符最大个数,只是对原创 2021-08-06 09:02:31 · 198 阅读 · 0 评论 -
I/O复用之Select
select主要通过维护一个套接字队列,来完成单线程的IO复用,利用以下几个函数实现NAME select, pselect, FD_CLR, FD_ISSET, FD_SET, FD_ZERO - synchronous I/O multiplexing函数声明SYNOPSIS /* According to POSIX.1-2001 */ #include <sys/select.h> /* Accor原创 2021-08-05 11:15:08 · 214 阅读 · 0 评论 -
I/O模型与I/O复用
在一次IO操作中,数据不会直接拷贝到程序的内存缓冲区,而是分为以下两个阶段:等待数据准备好,然后复制到内核缓冲区 从内核缓冲区复制到应用程序缓冲区IO模型IO模型主要有五种阻塞式I/O当数据未准备好时,进程会一直阻塞,直到数据准备好并从内核态复制到用户态。非阻塞式I/O若数据未准备好,则会返回,可以执行其他任务;过段时间再次询问;若准备好则从内核态复制到用户态。这种非阻塞式循环请求的方式称为轮询。I/O复用(select,poll,epoll等)利用内核来监视文件描.原创 2021-08-04 08:40:59 · 164 阅读 · 0 评论