下载此文档

完成端口模型程序设计.docx


文档分类:IT计算机 | 页数:约10页 举报非法文档有奖
1/10
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/10 下载此文档
文档列表 文档介绍
完成端口模型程序设计
实验目的
通过本次实验,掌握Windows socket的IO完成端口(I0CP)模型开发, 利用编程能力,编写程序,利用服务线程,查看I/O操作的结果信息。深入了解 相关知识。
实验任务
首先查阅与完成端口模nStatus返回时通过该参数获取套接字的IO操作相关信息。 5:取消异步操作。
当关闭套接字时,如果此时系统还有未完成的异步操作,应用程序可 以调用CancelIo函数取消等待执行的异步操作。

| 创建完成端口 ]
°
|创建服务线程. |
| 接受客户端请求 |
I
声明完成健结构,它包 |
含客户端套接字信息 |
I
调用createiocompletionport将套接字 与完成端口关联起来,并传入完成锂
I
声明V。操作结构,它包含每次重叠V。时的 操作信息
I
在服务线程中,调用函数等待I/口操作结果
(Eet Queue de cimu let icirimtum )

///////////////////////////////////////////
// 文件
#include "../common/"
#include <>
#include <>
#include "”
//初始化Winsock库
CInitSock theSock;
int main()
{
USHORT nPort = 4567; //此服务器监听的端口号
//创建监听套节字
SOCKET sListen = ::socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); sockaddr_in sin;
= AF_INET;
= htons(nPort);
= INADDR_ANY;
if(::bind(sListen, (sockaddr*)&sin, sizeof(sin)) == SOCKET_ERROR)
{
printf(" Failed bind() \n");
return -1;
}
::listen(sListen, 200);
//创建事件对象,并关联到监听的套节字
WSAEVENT event = ::WSACreateEvent();
::WSAEventSelect(sListen, event, FD_ACCEPT|FD_CLOSE);
::InitializeCriticalSection(&g_cs);
//处理客户连接请求,打印状态信息
while(TRUE)
{
int nRet = ::WaitForSingleObject(event, 5*1000); if(nRet == WAIT_FAILED)
{
printf(" Failed WaitForSingleObject() \n"); break;
}
else if(nRet == WSA_WAIT_TIMEOUT) // 定

完成端口模型程序设计 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息