poll函数
#include <poll.h>
int poll(struct pollfd *fds, nfds_t nfds,int timeout);
pollfd结构
struct pollfd {
int fd; /* file descriptor */
short events; /* requested events */
short revents; /* returned events */
};
fds:poll函数监听的结构列表
nfds:fds数组的长度。
timeout:唤醒时间
pollfd结构体events常用取值为:POLLIN(数据可读)和POLLOUT(数据可写)
poll的优点:
- poll使用结构体来保存文件描述符。
- 结构体中包含了要监视的事件和监视过的事件。
- poll没有最大数量限制。(但数量过大性能会下降)。
poll的缺点:
- 需要轮询来获取就绪的文件描述符。
- 浪费CPU资源
- 连接大量的客户端,性能会下降。