Socket IO模型之IOCP
来源:互联网 发布:淘宝如何做数据包 编辑:程序博客网 时间:2024/06/01 19:52
1、IOCP
IOCP(完成端口)是迄今为止最为复杂的一种I/O模型。然而,假若一个应用程序同时需要管理为数众多的套接字,那么采用这种模型,往往可以达到最佳的系统性能!但不幸的是,该模型只适用于Windows NT和Windows 2000操作系统。因其设计的复杂性,只有在你的应用程序需要同时管理数百乃至上千个套接字的时候,而且希望随着系统内安装的CPU数量的增多,应用程序的性能也可以线性提升,才应考虑采用IOCP。要记住的一个基本准则是,假如要为Windows NT或Windows 2000开发高性能的服务器应用,同时希望为大量套接字I/O请求提供服务,那么I/O完成端口模型便是最佳选择!
2、应用
从本质上讲,IOCP要求创建一个windows对象,该对象通过指定数量的线程,对重叠I/O请求进行管理,以便为已经完成的重叠I/O请求提供服务。创建IOCP的API函数:
CreateIoCompletionPort(
__in HANDLE FileHandle,
__in_opt HANDLE ExistingCompletionPort,
__in ULONG_PTR CompletionKey,
__in DWORD NumberOfConcurrentThreads
);
该函数能实现两个截然不同的目的:(1)创建一个IOCP对象;(2)将一个句柄与IOCP关联在一起。
创建一个对象时,比较使人感兴趣的参数是NumberOfConcurrentThreads。该参数的特殊之处在于:在IOCP上同时允许执行线程的数量。通常将其设为0,表示有多少个处理器,则允许同时允许多少个线程。下面语句将创建一个IOCP:
::CreateIoCompletionPort(INVALID_HANDLE_VALUE, NULL, 0, 0);
其结果是返回一个句柄,用来对端口进行标识。
- Socket IO模型之IOCP
- Windows socket之IO完成端口(IOCP)模型开发
- Windows socket之IO完成端口(IOCP)模型开发
- Windows socket之IO完成端口(IOCP)模型开发
- Windows socket之IO完成端口(IOCP)模型开发
- Windows socket之IO完成端口(IOCP)模型开发
- Winsock IO模型之IOCP模型
- Windows socket之IO完成端口(IOCP)模型开发
- Windows socket之IO完成端口(IOCP)模型开发(原作者:csdn——ithzhang)
- 网络编程五种IO模型之IOCP模型
- socket编程之IO模型
- windows Socket编程之重叠IO模型
- IOCP编程之重叠IO
- IOCP编程之重叠IO
- IOCP编程之重叠IO
- IOCP编程之重叠IO
- Win socket编程--IOCP完成端口模型
- C++ SOCKET通信模型(四)IOCP
- 在互联网时代不突破的企业将没有出路
- HibernateUtil 获取sessionfactory 、session
- 免刻盘,U盘移动硬盘引导安装UBUNTU
- android项目源码
- GDI+ 小知识点总结
- Socket IO模型之IOCP
- 分享几个下载免费电子图书的地方ebook
- 详解Android首选项框架ListPreference
- JAVA用POI读取EXCEL的例子 超简单
- jdk环境变量配置
- 网站打不开会出现Bad Request (Invalid Hostname)
- 【编程语言】java--Set及其子类
- 浅析MVC模式与三层架构的区别
- 什么是网关?