Select函数可以使我们在程序中同时监听多个文件描述符的读写状态。程序会停在select这里等待,知道被监视的文件描述符中某一个或多个发生了状态改变,select()机制中提供一fd_set的数据结构,实际上是一long类型的数组,每一个数组元素能与一打开的文件描述符建立联系(不管是socket描述符,还是其他文件或命名管道或设备描述符)。当调用select时,由内核根据IO状态修改fd_set的内容,由此来通知执行了select的进程哪一socket或文件可读。
三用户通信:
用户一
用户二:
用户三: