📄 socketlayer.h
字号:
// SocketLayer.h: interface for the SocketLayer class.
/*/////////////////////////////////////////////////////////////////////////////
Socket层,负责进行数据打包、解包;编码、解码;
李亦
2006.06.21
/*//////////////////////////////////////////////////////////////////////////////
#if !defined(_SOCKETLAYER_H_)
#define _SOCKETLAYER_H_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#ifndef _AUTHSOCKET_H_
#include "server/net/AuthSocket.h"
#endif
#if !defined(_CS_COMMAND_H_)
#include "server/cmd/CmdManager.h"
#endif
#ifndef __INC_IOSOCKET_H
#include "server/net/IOSocket.h"
#endif
#ifndef __INC_ENCRYPTENGINE_H
#include "server/encrypt/EncryptEngine.h"
#endif
#ifndef _PLATFORMMUTEX_H_
#include "platform/platformMutex.h"
#endif
#ifndef _PLATFORMTHREAD_H_
#include "platform/platformThread.h"
#endif
#ifndef _SIMBASE_H_
#include "console/simbase.h"
#endif
namespace CS
{
#define CS_NET_IDLE 20
typedef int (RPGAPI2 *RECVCALLBACK)(void *pBuffer,unsigned int uBufferLen,CAuthSocket* cas_from);
///////////////////////////////////////////////////////////////////////////////
//内存分配
void *consoleAlloc(U32 size);
void consoleAllocReset();
///////////////////////////////////////////////////////////////////////////////
//Socket层管理
class SocketLayer : protected Thread, public SimObject
{
typedef SimObject Parent;
protected:
RECVCALLBACK m_pRecvCallBack;
//MutexInstance m_NetCritSec;
//Thread m_layerThread;
CmdManager* m_pCommand;
UINT m_uIdleTimeOut;
CAuthSocket* ListenAuthSocket(INTERACT_LISTEN_PROC *pIL, int nUserId, HWINDOW hParent, LPCSTR svBindStr, LPCSTR svNetMod, LPCSTR svEncryption, LPCSTR svAuth);
CAuthSocket* ConnectAuthSocket(INTERACT_CONN_PROC *pIC, int nUserId, HWINDOW hParent, LPCSTR svBindStr, LPCSTR svNetMod, LPCSTR svEncryption, LPCSTR svAuth);
CAuthSocket* CreateAuthSocket(char *svRNetMod, char *svREncryption, char *svRAuth);
virtual void OnCreateAuthSocket(CAuthSocket* pSocket){}
private:
static CAuthHandlerManager ms_authHandlerMan;
static CEncryptHandlerManager ms_encryptHandlerMan;
static CIOHandlerManager ms_ioHandlerMan;
public:
static void Initialize();
static void Destroy();
public:
void SetRecvCallBack(void *pFunc);
public:
DECLARE_CONOBJECT(SocketLayer);
public:
SocketLayer();
virtual ~SocketLayer();
};
inline void SocketLayer::SetRecvCallBack(void *pFunc)
{
m_pRecvCallBack = (RECVCALLBACK)pFunc;
}
};//namespace CS
#endif // !defined(_SOCKETLAYER_H_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -