习 题_Windows网络编程(第2版)_[共2页]

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

242
return 0;
}
程序的工作组流程如下。

•初始化Windows Sockets环境。

•创建完成端口对象CompletionPort。

•根据当前计算机中CPU的数量创建工作线程,并将新建的完成端口对象CompletionPort 作为线程的参数。

•创建监听Socket Listen,并将其绑定到本地地址的9990端口。

•在Socket Listen上进行监听。

•在while循环处理来自客户端的连接请求,接受连接,并将得到的与客户端进行通信的Socket Accept保存到PER_HANDLE_DATA结构体对象PerHandleData中。

将Socket Accept与前面的端口CompletionPort相关联。

•在Socket Accept上调用WSARecv()函数,异步接收Socket上来自客户端的数据。

WSARecv()函数立即返回,此时Socket Accept上不一定有客户端发送来的消息。

在工作线程中会检测完成端口对象的状态,并接收来自客户端的数据,再将这些数据发送回客户端程序。

一、选择题
1.下面不属于Socket编程模型的是()。

A.Select模型B.WSAAsyncSelect模型
C.WSAEventSelect模型D.完成例程模型
2.下面模型使用线程池处理异步I/O请求的是()。

A.Select模型B.WSAAsyncSelect模型
C.WSAEventSelect模型D.完成端口模型
3.在ioctlsocket()函数中使用()参数,并将argp参数设置为非0值,可以将Socket设置为非阻塞模式。

A.FIONBIO B.FIONREAD
C.SIOCATMARK D.FIONONBLOCK
4.在执行select()函数时如果出现错误则返回()。

A.0 B.−1
C.NULL D.SOCKET_ERROR
5.在WSAEventSelect模型中,调用WSAEventSelect()函数注册网络事件后,应用程序需要等待网络事件的发生,然后对网络事件进行处理。

调用后,WSAWaitForMultipleEvents()函数处于阻塞状态,直到下面()情况发生才会返回。

A.创建了监听Socket B.阻塞时间超过指定的超时时间
C.所有事件对象都处于未受信状态D.所有事件对象都被释放
二、填空题
1.Socket编程可以分为【1】和【2】两种开发模式。

相关文档
最新文档