CreateIoCompletionPort() 函数

 1 /* *********************
 2  * CreateIoCompletionPort() 函数有两个功能:
 3  * 1、创建一个完成端口;
 4  * 2、将一个设备与一个存在的完成端口进行绑定,在网络编程中这个设备就是一个SOCKET。
 5  * ********************* */
 6
 7 // 1、创建一个完成端口的固定写法:
 8 HANDLE hCompletion = ::CreateIoCompletionPort(
 9     INVALID_HANDLE_VALUE, NULL, NULL, 0);
10
11 // 2、将一个有效的设备(这里只以SOCKET 为例)句柄与有效的完成端口绑定
12 // 这时有一个参数非常重要,就是第三个参数,这个参数就类似创建线程时的线程参数。
13 // 可以说完全是一样的,不过这个参数会被函数
14 // ::GetQueuedCompletionStatus() 通过参数原样带回。
15 // 当然了这里说的是写网络时,至于其他设备,暂时不了解。
16 // 显然这个参数为了完全,我们应该是在堆内存中申请空间并传送过去。
17 char *chCompletionKey = new char[1024];
18 SOCKET sockConn = WSAAccept(sockListen, NULL, NULL, NULL, 0);
19 ::CreateIoCompletionPort((HANDLE)sockConn, hCompletion,
20     (ULONG_PRT)chCompletionKey, 0);
时间: 2024-10-15 17:22:05

CreateIoCompletionPort() 函数的相关文章

I/O Completion Ports

I/O Completion PortsI/O completion ports provide an efficient threading model for processing multiple asynchronous I/O requests on a multiprocessor system. When a process creates an I/O completion port, the system creates an associated queue object f

完成端口(Completion Port)详解(转)

手把手叫你玩转网络编程系列之三    完成端口(Completion Port)详解                                                              ----- By PiggyXP(小猪) 前 言 本系列里完成端口的代码在两年前就已经写好了,但是由于许久没有写东西了,不知该如何提笔,所以这篇文档总是在酝酿之中……酝酿了两年之后,终于决定开始动笔了,但愿还不算晚….. 这篇文档我非常详细并且图文并茂的介绍了关于网络编程模型中完成端口的方方

完成端口(CompletionPort)详解

手把手叫你玩转网络编程系列之三    完成端口(Completion Port)详解                                                              ----- By PiggyXP(小猪) 前 言 本系列里完成端口的代码在两年前就已经写好了,但是由于许久没有写东西了,不知该如何提笔,所以这篇文档总是在酝酿之中--酝酿了两年之后,终于决定开始动笔了,但愿还不算晚-.. 这篇文档我非常详细并且图文并茂的介绍了关于网络编程模型中完成端口的方方

完毕port(CompletionPort)具体解释 - 手把手教你玩转网络编程系列之三

手把手叫你玩转网络编程系列之三    完毕port(Completion Port)具体解释                                                              ----- By PiggyXP(小猪) 前 言 本系列里完毕port的代码在两年前就已经写好了,可是因为许久没有写东西了,不知该怎样提笔,所以这篇文档总是在酝酿之中--酝酿了两年之后,最终决定開始动笔了,但愿还不算晚-.. 这篇文档我很具体而且图文并茂的介绍了关于网络编程模型中完毕

Winsock I/O 模型详解

Winsock共有五种类型的套接字I/O模型,可让Winsock应用程序对I/O进行管理,它们包括: select(选择).WSAAsyncSelect(异步选择).WSAEventSelect(事件选择).overlapped(重叠).以及completion port(完成端口). 1.Select(选择)模型 利用select函数,判断套接字上是否存在数据,或者能否向一个套接字写入数据.目的是防止应用程序在套接字处于锁定模式时,调用recv(或send)从没有数据的套接字上接收数据,被迫进

完成端口————留着看

[置顶] 完成端口(CompletionPort)详解 - 手把手教你玩转网络编程系列之三 分类: VC网络编程基础2011-11-01 08:17 75535人阅读 评论(366) 收藏 举报 网络编程socketnull服务器windows 手把手叫你玩转网络编程系列之三    完成端口(Completion Port)详解                                                              ----- By PiggyXP(小猪) 前

DIOCP 运作核心探密

来自网友天地弦的DIOCP早已经广为人知了,有很多的同学都用上了它,甚至各种变异.修改版本也出了不少.我最近也在学习DIOCP,打算将它用于自己的服务端,今天让我们来一起探密它(DIOCP)的运作核心吧. DIOCP作为对Windows的IOCP完成端口封装,拥有了很高的性能,经过对ECHO示例的测试,它能轻松应对几万连接和并发.网络通讯一般分为6大阶段:请求连接.接受连接.接收数据.处理数据.回复数据.断开连接,下面我就从这6大阶段入手,来看看DIOCP是如何实现的. 一. 请求连接 实际上这

套接字I/O模型-完成端口IOCP

“完成端口”模型是迄今为止最为复杂的一种I/O模型.然而,假若一个应用程序同时需要管理为数众多的套接字,那么采用这种模型,往往可以达到最佳的系统性能!但不幸的是,该模型只适用于Windows NT和Windows 2000操作系统.因其设计的复杂性,只有在你的应用程序需要同时管理数百乃至上千个套接字的时候,而且希望随着系统内安装的CPU数量的增多,应用程序的性能也可以线性提升,才应考虑采用“完成端口”模型.要记住的一个基本准则是,假如要为Windows NT或Windows 2000开发高性能的

Windows完成端口与Linux epoll技术简介

收藏自:http://www.cnblogs.com/cr0-3/archive/2011/09/09/2172280.html WINDOWS完成端口编程1.基本概念2.WINDOWS完成端口的特点3.完成端口(Completion Ports )相关数据结构和创建4.完成端口线程的工作原理5.Windows完成端口的实例代码Linux的EPoll模型1.为什么select落后2.内核中提高I/O性能的新方法epoll3.epoll的优点4.epoll的工作模式 5.epoll的使用方法6.L