Files
mir_server/server/LoggerServer/LoggerClientSocket.h

71 lines
2.4 KiB
C
Raw Normal View History

2025-01-09 17:45:40 +08:00
#ifndef _LOGGER_CLIENT_SOCKET_H_
#define _LOGGER_CLIENT_SOCKET_H_
class CCustomJXServerClientSocket;
class CLoggerServerSocket;
//class CNetworkDataHandler;
class CLoggerClientSocket:
public CCustomJXServerClientSocket
{
public:
CLoggerClientSocket(void);
CLoggerClientSocket(CLoggerServerSocket* pSrv,SOCKET nSocket, SOCKADDR_IN *pClientAddr);
~CLoggerClientSocket(void);
//继承基类的方法,处理收到的数据包
//virtual VOID ProcessRecvBuffers(PDATABUFFER pDataBuffer);
/*** 子类需覆盖的函数集 ***/
/* 处理单个通信数据包
* nCmd
* inPacket
*/
virtual VOID OnDispatchRecvPacket(const jxSrvDef::INTERSRVCMD nCmd, CDataPacketReader &inPacket);
/* 验证客户端注册数据是否有效
*@return true表示注册数据有效并false则关闭连接
*/
virtual bool OnValidateRegData(const jxSrvDef::PSERVER_REGDATA pRegData);
int GetServerIndex() {return m_nServerIndex;}
//发送聊天记录给日志查看器
void SendChatLogToClient(CDataPacketReader &inPacket);
private:
/*
*
* pDataBuff:;nLen:
* pDataBuff的大小会比数据包大,0
*/
int ProcessData(void* pDataBuff,int nLen);
/*****以下四个函数分别保存4大类的日志内容*****/
VOID InsertLogin(CDataPacketReader &inPacket);
VOID InsertConsume(CDataPacketReader &inPacket);
VOID InsertOnline(CDataPacketReader &inPacket);
VOID InsertKillDrop(CDataPacketReader &inPacket);
VOID InsertJoinAtv(CDataPacketReader &inPacket);
VOID InsertDeal(CDataPacketReader &inPacket);
VOID InsertItem(CDataPacketReader &inPacket);
//VOID InsertSuggest(CDataPacketReader &inPacket); //插入建议数据
protected:
virtual VOID OnRun();
VOID OnDisconnected();
private:
//把数据包传递给这个类保存到数据库
CLoggerServerSocket* pSrv;
CSQLConenction* m_pSQLConnection; //数据库连接对象
CBaseList<CDataPacket* > m_dataList; //待处理的数据列表
CBaseList<CDataPacket* > m_freeDataList; //空闲的数据列表
int m_nServerIndex;
#ifndef WIN32
CLocalSender* m_pLocalSender;
#endif
};
#endif