⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 iocpprocess.h

📁 iocp vc例子,自己是学DELPHI
💻 H
字号:
// IocpProcess.h: interface for the CIocpProcess class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_IOCPPROCESS_H__7EE1E3F2_5A37_475E_B4E9_DFA4FBC73D55__INCLUDED_)
#define AFX_IOCPPROCESS_H__7EE1E3F2_5A37_475E_B4E9_DFA4FBC73D55__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

//定义默认消息
enum
{
	CMD_IOCP_COMMON=0x00000000
};

enum
{
	CMD_IOCP_COMMON_SEND_CANCEL=CMD_IOCP_COMMON+1, 	//发送端取消
	CMD_IOCP_COMMON_RECV_CANCEL						//接收端取消
};

enum IOCPTASK_TYPE
{
	IOCPTASK_NONE=0, 
	IOCPTASK_NEW_CONNECTION, 
	IOCPTASK_DIS_CONNECTION, 
	IOCPTASK_PACKET_BEGIN, 	
	IOCPTASK_PACKET_PROGRESS, 
	IOCPTASK_PACKET_END, 	
	IOCPTASK_PACKET_CANCEL,
	IOCPTASK_PACKET_PROCESS
};

struct IOCPTASK
{
	WORD wType;
	CIocpContext* pContext;
	CIocpPacket* pPacket;
	WPARAM wParam;
	LPARAM lParam;

	IOCPTASK() {memset(this, 0, sizeof(IOCPTASK));};
};
typedef CList<IOCPTASK, IOCPTASK&> CIocpTaskList;

class CIocpManager;

class AFX_EXT_CLASS CIocpProcess  
{
public:
	CIocpProcess();
	virtual ~CIocpProcess();

private:
	CIocpManager* m_pIocpMngr;	//IOCP控制器

public:
	void SetIocpMngr(CIocpManager* pIocpMngr) {m_pIocpMngr = pIocpMngr;};	//设置IOCP控制器
	int Processing(IOCPTASK& itTask);	//处理网络命令	
	
public:
	virtual int ProcessNewConnection(CIocpContext* pContext);	//新建连接	
	virtual int ProcessDisConnection(SOCKET soSocket);	//断开连接	
	virtual int ProcessPacketBegin(SOCKET soSocket, CIocpPacket* pPacket);	//数据包发送或接收开始
	virtual int ProcessPacketProgress(SOCKET soSocket, ULONG ulKey, WPARAM wParam, LPARAM lParam);	//数据包发送或接收进度
	virtual int ProcessPacketEnd(SOCKET soSocket, CIocpPacket* pPacket);	//数据包发送或接收结束	
	virtual int ProcessPacketCancel(SOCKET soSocket, ULONG ulKey);	//数据包发送或接收取消	
	virtual int ProcessPacket(SOCKET soSocket, CIocpPacket* pPacket);	//数据包处理
};

#endif // !defined(AFX_IOCPPROCESS_H__7EE1E3F2_5A37_475E_B4E9_DFA4FBC73D55__INCLUDED_)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -