网络程序设计--第3章 Windows套接字IO模型.ppt

网络程序设计--第3章 Windows套接字IO模型

1. 套接字模式 Windows套接字在两种模式下执行I/O操作:阻塞和非阻塞。 在阻塞模式下,在I/O操作完成前,执行操作的Winsock函数(比如send和recv)会一直等候下去,不会立即返回程序(即不会将控制权交还给程序),直到该函数操作完成,或出错。 在非阻塞模式下, Winsock函数无论如何都会立即返回。 1.1 阻塞模式 对于处在阻塞模式的套接字,我们必须多加留意,因为在一个阻塞套接字上调用任何一个Winsock API函数,都会产生相同的后果------耗费或长或短的时间“等待”。 一个典型的例子 简单的阻塞模式示例 SOCKET sock; char buff[256]; int done = 0; …… while(!done) { nBytes = recv(sock,buff,65,0); if (nBytes == SOCKET_ERROR) { printf(“recv failed with error %d\n”,WSAGetLastError()); return; } DoComputationData(buff); } …… 1.2 非阻塞模式 非阻塞模式的套接字在使用上稍显困难,但它在功能上是非常强大的。除具备阻塞套接字已有的各项优点之外,还进行了扩充,功能更强。 创建一个套接字,并将其置为非阻塞模式的程序

文档评论(0)

1亿VIP精品文档

相关文档