1、select一般用在非阻塞的通訊中(主要可以設定超時時間);
2、一般服務端可以使用select的模型,如建立socket以後,監聽等待直到有accept,
3、然後可以對所有接入的連線輪訓進行資料報的收發,主要使用如下幾個函式,該方法跟linux下poll或者epoll相似
fd_zero(&set); //將你的套節字集合清空
fd_set(nsocket, &set); //加入你感興趣的套節字到集合,這裡是乙個讀資料的套節字s
select()
fd_isset( nsocket, &set )
4、setsockopt主要用於設定一些socket的特性如
select函式中引數nfds的理解
函式原型 include include include int select int nfds,fd set readfds,fd set writefds,fd set exceptfds,struct timeval timeout void fd clr int fd,fd set set ...
select函式中的演算法
先討論與io無關的東西.呼叫select 的流程是 1 將要監聽的檔案描述符 集 a,b,c選入乙個集合s 2 呼叫select,可以設定超時引數 4 函式內部設定s集合中的描述符 3 函式返回,解析s中還有哪些述符 怎樣高效的來實現上述的過程.我們知道檔案描述符是乙個較小遞增不重複的int,根據這...
使用select函式的TCP和UDP回射伺服器程式
include udpservselect01 include unp.h intmain int argc,char argv if fd isset listenfd,rset close connfd parent closes connected socket if fd isset udp...