多路转接服务器之poll

本文深入探讨了多路转接服务器中的poll模型。介绍了poll函数的使用,包括pollfd结构体和其参数意义,以及poll相比select的优势,如事件分离和无文件描述符数量限制。
摘要由CSDN通过智能技术生成

多路转接server之poll模型

poll函数原型:

#include <poll.h>
int poll(struct pollfd *fds, nfds_t nfds, int timeout);

包含于poll.h头文件中

  • fds是一个pollfd结构体类型的一个数组,里面存放我们关心的文件描述符中的读、写和异常事件。 
    pollfd结构体类型定义:

    struct pollfd {
         
    int fd; /* file descriptor */
    short events; /* 所关心的事件 */
    short revents; /* 实际发生的事件,由内核返回给user */
    };
    常见的events有POLLIN,POLLOUT,POLLERR等。
    revents返回实际已就绪的事件。
  • nfds 指定被监听事件集合fds的大小,定义如下:

    typedef unsigned long int nfds_t
  • timeout poll的超时值,单位为ms(毫秒),当为-1时表示永远阻塞,知道某个事件发生,为0时表示只要调用p

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值