先检测哪些描述符有数据,后处理
能同时监听多个文件描述符
select, poll, epoll
通过下列宏可以访问 fd_set 结构中的位: 1. FD_ZERO(fd_set *fdset); // 清除 fdset 的所有位 2. FD_SET(int fd, fd_set *fdset); // 设置 fdset 的位 fd 3. FD_CLR(int fd, fd_set *fdset); // 清除 fdset 的位 fd 4. int FD_ISSET(int fd, fd_set *fdset);// 测试 fdset 的位 fd 是否被设置