socket中select的使用

 原型:int select(nfds, readfds, writefds, exceptfds, timeout)  

参数含义:

  1. ndfs:select监视的文件句柄数。据msdn上说的,这个参数应该是没什么关系一般要设为最大的socket+1
  2. readfds:获取可读的socket
  3. writefds:获取可写的socket
  4. exceptfds: 一场的socket
  5.  timeout:等待的时间
  6. 返回值:select()调用返回处于就绪状态并且已经包含在fd_set结构中的描述字总数;如果超时则返回0;否则的话,返回SOCKET_ERROR错误,应用程序可通过WSAGetLastError()获取相应错误代码。

注释:
   本函数用于确定一个或多个套接口的状态。对每一个套接口,调用者可查询它的可读性、可写性及错误状态信息。用fd_set结构来表示一组等待检查的套接口。在调用返回时,这个结构存有满足一定条件的套接口组的子集,并且select()返回满足条件的套接口的数目。有一组宏可用于对fd_set的操作,这些宏与Berkeley Unix软件中的兼容,但内部的表达是完全不同的。
 

相关宏:

  FD_ZERO(fd_set   *fdset):清空fdset与所有文件句柄的联系。      
  FD_SET(int   fd,   fd_set   *fdset):建立文件句柄fd与fdset的联系。      
  FD_CLR(int   fd,   fd_set   *fdset):清除文件句柄fd与fdset的联系。      
  FD_ISSET(int   fd,   fdset   *fdset):检查fdset联系的文件句柄fd是否      

 



文章来自: 本站原创
Tags:
评论: 0 | 查看次数: 7381