i-o复用
文章平均质量分 69
hy3686_1991
这个作者很懒,什么都没留下…
展开
-
I/O复用------select
I/O复用使得程序能同时监听多个文件描述符。其适用场合为: 客户端:同时处理多个socket,同时处理用户输入和为网络链接。 服务端:同时处理监听、链接socket,同时监听多个端口,同时处理TCP和UDP请求。 注意:I/O复用本身是阻塞的,当多个描述符同时就绪时,如果不使用多进程/多线程,那么就会按顺序依次处理。 一、 select系统调用 在一段时间内,监听用户感兴趣的文件描述符上原创 2016-08-30 10:57:35 · 319 阅读 · 0 评论 -
I/O复用------poll
二、poll系统调用 在指定时间内轮询一定数量的文件描述符,以测试其中是否有就绪者。 <1> poll函数#inlcude <poll.h> int poll(struct pollfd* fds, nfds_t nfds, int timeout); // fds 是一个pollfd结构类型的数组,指定感兴趣的文件描述符上发生的可读、可写和异常 // struct pollfd{ // in原创 2016-08-31 22:27:47 · 294 阅读 · 0 评论 -
I/O复用------epoll
<1> 内核事件表 epoll是Linux特有的I/O复用函数,在实现和使用上与poll和selec有所不同。 首先,epoll使用一组函数来完成任务,而非单个函数 epoll把用户关心的文件描述符上的事件放在内核的一个事件表中,从而无需像select和poll那样每次调用都要从新传入描述符集或事件集。 1) epoll_create 创建一个额外的文件描述符,来唯一标识原创 2016-09-03 18:27:19 · 253 阅读 · 0 评论