iocp完全解析

iocp完全解析

ID:31621041

大小:268.38 KB

页数:37页

时间:2019-01-16

iocp完全解析_第1页
iocp完全解析_第2页
iocp完全解析_第3页
iocp完全解析_第4页
iocp完全解析_第5页
资源描述:

《iocp完全解析》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、#pragmacomment(lib,"ws2_32.lib")从本质上说,完成端口模型要求创建一个windows完成端口对象,该对象通过指定数量的线程,对重叠I/O请求进行管理,以便为已经完成的重叠I/O请求提供服务。首先要创建一个I/O完成端口对象,用它面向任意数量的套接字句柄,管理多个I/O请求。调用以下函数创建完成端口对象:HANDLECreateIoCompletionPort(HANDLEFileHandle,//同IOCP关联在一起的套接字句柄HANDLEExistingCompletionPort,//I

2、OCP句柄ULONG_PTRCompletionKey,//完成健DWORDNumberOfConcurrentThreads//在IOCP上,同时允许执行的线程数量);该函数有两个作用:(1)创建一个完成端口对象(2)将一个句柄同完成端口关联到一起然后就要创建一定数量的工作者线程,以便在套接字的I/O请求投递给完成端口后,为完成端口提供服务。写文字描述很烦,还是看代码吧://NetServer3.cpp:Definestheentrypointfortheconsoleapplication.//#include"st

3、dafx.h"#include"NetServer3.h"#include#pragmacomment(lib,"ws2_32.lib")#includeusingnamespacestd;/**///////////////////////////////////////////////////////////////////////////#ifdef_DEBUG#definenewDEBUG_NEW#undefTHIS_FILEstaticcharTHIS_FILE[]=

4、__FILE__;#endif/**/////////////////////////////////////////////////////////////////////////////单句柄数据typedefstructtagPER_HANDLE_DATA{SOCKETSocket;SOCKADDR_STORAGEClientAddr;//将和这个句柄关联的其他有用信息,尽管放在这里面吧}PER_HANDLE_DATA,*LPPER_HANDLE_DATA;//但I/O操作数据typedefstructtagPER

5、_IO_DATA{OVERLAPPEDOverlapped;WSABUFDataBuf;charbuffer[1024];intBufferLen;intOperationType;//可以作为读写的标志,为简单,我忽略了}PER_IO_DATA,*LPPER_IO_DATA;DWORDWINAPIServerWorkerThread(LPVOIDlpParam);/**////////////////////////////////////////////////////////////////////////////

6、////TheoneandonlyapplicationobjectCWinApptheApp;usingnamespacestd;int_tmain(intargc,TCHAR*argv[],TCHAR*envp[]){intnRetCode=0;//initializeMFCandprintanderroronfailureif(!AfxWinInit(::GetModuleHandle(NULL),NULL,::GetCommandLine(),0)){//TODO:changeerrorcodetosuityou

7、rneedscerr<<_T("FatalError:MFCinitializationfailed")<

8、//////////HANDLECompletionPort;WSADATAwsd;SYSTEM_INFOSystemInfo;SOCKADDR_INInternetAddr;SOCKETListen;//加载WinSock2.2WSAStartup(MAKEWORD(2,2),&wsd);//1.创建一个I/O完成

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。