基于iocp模型的通信程序设计

基于iocp模型的通信程序设计

ID:19299073

大小:102.00 KB

页数:15页

时间:2018-09-30

基于iocp模型的通信程序设计_第1页
基于iocp模型的通信程序设计_第2页
基于iocp模型的通信程序设计_第3页
基于iocp模型的通信程序设计_第4页
基于iocp模型的通信程序设计_第5页
资源描述:

《基于iocp模型的通信程序设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、实验6基于IOCP模型的通信程序设计一.实验目的:1.掌握IOCP模型下的多线程服务器及客户端设计2、掌握socket通信中接收数据时包处理的方法(粘连包处理)及发送数据的处理方法二.实验内容1.设计一个IOCP模型的TCP协议的服务和客户端,实现聊天室程序三.实验要求1.写出程序,并调试程序,要给出测试数据和实验结果。2.整理上机步骤,总结经验和体会。3.完成实验报告和上交程序。 四实验步骤1、实现Winsock库文件的装入和释放;2、封装CInitSock类,为了每次写网络程序都可以方便的装载和释放Winsock库;3、建立一个基于对话框的M

2、FC工程;4、将控件拖放到合适的位置,绘制一个简易界面;5、用IDE实现控件相关的函数和类;6、设计和编程是实现线程类;7、设计和编码实现重叠IO模型的包管理类;8、设计和编码实现内存管理类;9、设计和编码实现业务类10、自定义协议;11、实现简易的基于IOCP模型的服务器;五实验代码#pragmaonce#include"Business.h"#include#include"OverlapPacketManager.h"#include"SocketManager.h"classCIOCP{public:voidPrin

3、tState();voidProcessPacket(COvlapSocket*pSocket,OVERLAP_PACKET*pPacket,DWORDdwTrans,BOOLbOK);BOOLPostSend(COvlapSocket*pSocket,OVERLAP_PACKET*pPacket);BOOLPostRecv(COvlapSocket*pSocket,OVERLAP_PACKET*pPacket);BOOLPostAccept(OVERLAP_PACKET*pPacket);voidShutdown();BOOLStart(CBu

4、siness*pBusiness,char*pcIP="127.0.0.1",intnPort=4567,intnMaxConnections=2000,intnMaxFreeBuffers=200,intnInitialReads=4);CIOCP();virtual~CIOCP();CBusiness*m_pBusiness;//业务对象COverlapPacketManagerm_PacketManager;CSocketManagerm_SocketManager;private:voidProcessSocketError(COvlap

5、Socket*pSocket,char*pPosition);voidProcessAcceptPacket(OVERLAP_PACKET*pPacket);charm_strIP[20];intm_iPort;HANDLEm_hCompletion;HANDLEm_hWorkingThreadHandle;//服务线程句柄HANDLEm_hSocketmanagehandle;//套接字连接管理线程BOOLm_bServerStarted;BOOLm_bShutDown;intm_nMaxSends;SOCKETm_sListen;//监听套接

6、字句柄LPFN_ACCEPTEXm_lpfnAcceptEx;//AcceptEx函数地址LPFN_GETACCEPTEXSOCKADDRSm_lpfnGetAcceptExSockaddrs;//GetAcceptExSockaddrs函数地址staticDWORDWINAPIWorkingThreadProc(LPVOIDlpParam);};//IOCP.cpp:implementationoftheCIOCPclass.////////////////////////////////////////////////////////////

7、////////////#include"stdafx.h"#include"IOCP.h"#include"mstcpip.h"#pragmacomment(lib,"WS2_32.lib")#ifdef_DEBUG#undefTHIS_FILEstaticcharTHIS_FILE[]=__FILE__;#definenewDEBUG_NEW#endif#defineLISTEN_SOCKET_COMPLITION_KEY0//监听套接字的ComplitionKey#defineCOMPLITION_QUIT_MSG_TRANS-1//通知退

8、出完成端口消息#defineOVERLAP_TIMEOUT1000000//超时时间24小时86400000externboolg_bD

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

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

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