Files
mir_server/sdk/commonLib/include/CustomJXClientSocket.h

41 lines
1.5 KiB
C
Raw Normal View History

2025-01-09 17:45:40 +08:00
#pragma once
class CCustomJXClientSocket :
public CCustomClientSocket
{
public:
typedef CCustomClientSocket Inherited;
public:
//按通信协议申请一份发送数据包nCmd是通信消息号
//数据包填充完毕后需要调用flushProtoPacket提交到发送队列
CDataPacket& allocProtoPacket(const jxSrvDef::INTERSRVCMD nCmd);
//提交发送数据包到发送缓冲,会自动计算数据长度并向数据包的通信协议头部分写入长度值
VOID flushProtoPacket(CDataPacket& packet);
protected:
/*** 子类需覆盖的函数集 ***/
/* 处理单个通信数据包
* nCmd
* inPacket
*/
virtual VOID OnDispatchRecvPacket(const jxSrvDef::INTERSRVCMD nCmd, CDataPacketReader &inPacket) = 0;
/*** 下列函数为子类可能有必要覆盖的函数集 ***/
/* ★查询本地服务器的类型,以便正确的发送注册数据 */
virtual jxSrvDef::SERVERTYPE getLocalServerType() = 0;
/* ★查询本地服务器的名称,以便正确的发送注册数据 */
virtual LPCSTR getLocalServerName() = 0;
/* ★查询本地服务器ID以便正确的发送注册数据默认的返回值是0 */
virtual int getLocalServerIndex();
VOID SendKeepAlive();//heart tick
protected:
/*** 覆盖父类的网络数据包处理函数以便实现通信协议的数据包解析 ***/
VOID ProcessRecvBuffers(PDATABUFFER pDataBuffer);
/* 发送注册服务器的消息 */
VOID SendRegisteClient();
};