📄 iocpprocess.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 + -