在做Socket编程时,当要处理一个server对应多个client,这种可以每个客户端用一个线程来处理,但是客户端太多,程序的性能会降低。Windows提供了select模型,很好的处理了一对多的模型。select的申明如下:
Int WSAAPI select(
_In_ int nfds, //0,无意义
_Inout_opt_ fd_set FAR * readfds, //检查可读性集合
_Inout_opt_ fd_set FAR * writefds, //检查可写性集合
_Inout_opt_ fd_set FAR * exceptfds,//进行异常检测的Socket
_In_opt_ const struct timeval FAR * timeout //非阻塞模式中设置最大等待时间;
从msdn可查看参数的详细解释:
Any two of the parameters, readfds, writefds, or exceptfds