1:轮训方式就是一直读取,一直占用cpu资源,我们一般不用。
2:sigpoll信号的异步I/O,当系统发现东西需要你读的时候就发一个信号通知你。
3:select方式:int select(int maxfdp,fd_set *readfds,fd_set *writefds,fd_set *errorfds,struct timeval *timeout)
参数分析:
a:struct fd_set可以理解为一个集合,这个集合中存放的是文件描述符(file descriptor),即文件句柄。
b:struct timeval是一个大家常用的结构,用来代表时间值,有两个成员,一个是秒数,一个是毫秒数。
c:nt maxfdp是一个整数值,是指集合中所有文件描述符的范围,即所有文件描述符的最大值加1,不能错!在Windows中这个参数的值无所谓,可以设置不正确。
d :fd_set *readfds是指向fd_set结构的指针,这个集合中应该包括文件描述符,我们是要监视这些文件描述符的读变化的,即我们关心是否可以从这些文件中读取数据了,如果这