Select函數可以使我們在程序中同時監聽多個文件描述符的讀寫狀態。程序會停在select這裏等待,知道被監視的文件描述符中某一個或多個發生了狀態改變,select()機制中提供一fd_set的數據結構,實際上是一long類型的數組,每一個數組元素能與一打開的文件描述符建立聯繫(不管是socket描述符,還是其他文件或命名管道或設備描述符)。當調用select時,由內核根據IO狀態修改fd_set的內容,由此來通知執行了select的進程哪一socket或文件可讀。
實現三用戶簡單通信:
用戶一:
用戶二:
用戶三: