socket中select的使用
作者:admin 日期:2011-07-09
原型:int select(nfds, readfds, writefds, exceptfds, timeout)
参数含义:
- ndfs:select监视的文件句柄数。据msdn上说的,这个参数应该是没什么关系一般要设为最大的socket+1
- readfds:获取可读的socket
- writefds:获取可写的socket
- exceptfds: 一场的socket
- timeout:等待的时间
- 返回值: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是否
评论: 0 | 查看次数: 7745