-
2006-11-26
第8章 WinsockIO方法 - [winsock]
版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://xingzhesun.blogbus.com/logs/3916035.html
第8章 WinsockIO方法
套接字模式:锁定和非锁定
8.1套接字模式
生产者-消费者
8.1.2非锁定模式
SOCKET s;
unsigned long ul = 1;
int nRet;s = socket(AF_INET, SOCK_STREAM, 0);
nRet = ioctlsocket(s, FIOBIO, (unsigned long *)&ul);
if(nRet == SOCKET_ERROR)
{
....
}8.2.1 select模型
利用这个函数,我们判断套接字上是否存在数据,或者能否向一个套接字写入数据。
int select(int nfds,
fd_set FAR* readfds,
fd_set FAR* writefds,
fd_set FAR* exceptfds,
const struct timeval FAR* timeout);FD_CLR(s,*set);从set中删除套接字s。
FD_ISSET(s,*set);检查s是否在set中。
FD_SET(s,*set);将s加入集合set。
FD_ZERO(*set);将set初始化。SOCKET s;
fd_set fdread;
int ret;//create a socket and accept a connection
//Manage I/O on the socket
while(1)
{
FD_ZERO(&fdread);
FD_SET(s,&fdread);
if((ret = select(0, &fdread, NULL, NULL, NULL)== SOCKET_ERROR)
{ //ERROR }
if(ret >0)
{
if(FD_ISSER(s, &fdread))
{
//a read event has occurred on socket s.
}
}
}随机文章:
Windows网络编程经验小结 2007-02-058.2.5完成端口模型 2006-11-278.2.3WSAEventSelect 2006-11-27第六章 地址家族和名字解析 2006-11-20贝尔实验室笔试题目 2006-11-08
收藏到:Del.icio.us








