使用poll函数实现I/O复用. poll允许工作在任何描述符中,poll提供的功能与select函数类似。
函数原型如下:
1 |
|
返回:若有就绪描述符则为其数目,若超时返回0,出错返回-1
第一个参数是指向一个结构体数组第一个元素的指针。每个元素都是一个pollfd结构,用于指定测试某个给定描述符fd的条件
1 | struct pollfd{ |
下表说明了能够作为events和revents的常量
结构体数组中元素的个数是由nfds参数指定。
timeout 参数指定poll函数返回前等待多长时间。它是一个指定应等待毫秒数的正值。取值如下表:
timeout值说明-1永远等待,直到有描述符就绪0立即返回,不阻塞进程>0等待指定的毫秒数
使用poll函数建立的服务器端如下:
1 | // |