⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 socketlayer.h

📁 五行MMORPG引擎系统V1.0
💻 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 + -