47 lines
1.5 KiB
C
47 lines
1.5 KiB
C
|
|
#ifndef COMMON_SERVER_CLIENT_H_
|
|||
|
|
#define COMMON_SERVER_CLIENT_H_
|
|||
|
|
|
|||
|
|
/*
|
|||
|
|
公共服务器负责处理和客户端连接的数据发送接受逻辑类。公共辅服务器接受客户端(普通逻辑服务器)
|
|||
|
|
连接后就创建一个CCommonServerClient对象,用于和客户端通信。
|
|||
|
|
*/
|
|||
|
|
class CCommonServerClient : public CCustomJXServerClientSocket
|
|||
|
|
{
|
|||
|
|
friend class CCommonServer;
|
|||
|
|
public:
|
|||
|
|
typedef CCustomJXServerClientSocket Inherited;
|
|||
|
|
|
|||
|
|
CCommonServerClient(CCommonServer *lpCommonServer, SOCKET nSocket, PSOCKADDR_IN pAddrIn);
|
|||
|
|
virtual ~CCommonServerClient();
|
|||
|
|
|
|||
|
|
/*
|
|||
|
|
* Comments: 回收空闲的CDataPacket类
|
|||
|
|
* Param CDataPacket * pPacket:
|
|||
|
|
* @Return void:
|
|||
|
|
* @Remark: 收到数据包之后,本地分配数据包对象将内容缓存起来,然后通过逻辑线程处理。
|
|||
|
|
逻辑线程处理完数据后,调用此接口释放数据包对象。
|
|||
|
|
*/
|
|||
|
|
void FreeBackUserDataPacket(CDataPacket* pPacket);
|
|||
|
|
|
|||
|
|
protected:
|
|||
|
|
// CCustomSocket 虚函数
|
|||
|
|
VOID OnDisconnected();
|
|||
|
|
VOID OnError(INT errorCode);
|
|||
|
|
// CCustomWorkSocket 虚函数
|
|||
|
|
VOID OnRun();
|
|||
|
|
|
|||
|
|
// CCustomJXServerClientSocket
|
|||
|
|
VOID OnDispatchRecvPacket(const jxSrvDef::INTERSRVCMD nCmd, CDataPacketReader &inPacket);
|
|||
|
|
bool OnValidateRegData(const jxSrvDef::PSERVER_REGDATA pRegData);
|
|||
|
|
|
|||
|
|
// 由CommonServer调用的例行执行函数
|
|||
|
|
inline VOID Run() { SingleRun(); }
|
|||
|
|
|
|||
|
|
CDataPacket* AllocSendPacket();
|
|||
|
|
|
|||
|
|
private:
|
|||
|
|
CQueueList<CDataPacket*> m_vFreeList; //用来存放空闲的数据包
|
|||
|
|
CCSLock m_vFreeListLock;
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
#endif
|