Passion & Innovation - I write, therefore I am
#define __FD_SETSIZE 1024
http://www.moythreads.com/wordpress/2009/12/22/select-system-call-limitation/根據這篇文章,設超過 1024 會導致未知的錯誤,因為 Linux 是用固定大小的結構做為每個連結的旗標。這個結構在 32 位元的平台,最多只有 1024位元。要擴充這個容量,看起來不只是要更動這個資料結構,連帶的程式碼也要更動。作者建議在 Linux 平台上可用 epoll 取代 select 來管理大量連線。
http://www.moythreads.com/wordpress/2009/12/22/select-system-call-limitation/
回覆刪除根據這篇文章,設超過 1024 會導致未知的錯誤,因為 Linux 是用固定大小的結構做為每個連結的旗標。這個結構在 32 位元的平台,最多只有 1024位元。要擴充這個容量,看起來不只是要更動這個資料結構,連帶的程式碼也要更動。作者建議在 Linux 平台上可用 epoll 取代 select 來管理大量連線。