Restructure repository to include all source folders
Move git root from Client/ to src/ to track all source code: - Client: Game client source (moved to Client/Client/) - Server: Game server source - GameTools: Development tools - CryptoSource: Encryption utilities - database: Database scripts - Script: Game scripts - rylCoder_16.02.2008_src: Legacy coder tools - GMFont, Game: Additional resources 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,130 @@
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// ClientSocket Class
|
||||
//
|
||||
// Last Update : 2003-01-10
|
||||
//
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
#ifndef _GAMA_CLIENT_SOCKET_H_
|
||||
#define _GAMA_CLIENT_SOCKET_H_
|
||||
|
||||
#include <winsock2.h>
|
||||
#include <windows.h>
|
||||
|
||||
#include <Network/Packet/PacketCommand.h>
|
||||
#include <DB/DBDefine.h>
|
||||
#include <vector>
|
||||
#include <bitset>
|
||||
|
||||
namespace ClientNet
|
||||
{
|
||||
// forward decl.
|
||||
class CNetworkMsgBlock;
|
||||
class CClientEventHandler;
|
||||
class CClientEventHandlerMgr;
|
||||
};
|
||||
|
||||
|
||||
class ClientSocket
|
||||
{
|
||||
protected:
|
||||
|
||||
ClientSocket();
|
||||
virtual ~ClientSocket();
|
||||
static ClientSocket* s_pInstance;
|
||||
|
||||
public:
|
||||
|
||||
static ClientSocket* CreateInstance();
|
||||
|
||||
static void DestroyInstance() { if(s_pInstance) { delete s_pInstance; s_pInstance = 0; } };
|
||||
static ClientSocket* Instance() { return s_pInstance; };
|
||||
|
||||
enum Const
|
||||
{
|
||||
MAX_CHAT_SERVER_ADDR = 16,
|
||||
MAX_GAME_GUARD_CRYPT_HEADER_SIZE = 32
|
||||
};
|
||||
|
||||
enum ConnectPort
|
||||
{
|
||||
DEFAULT_AUTH_TCP_PORT = 10110,
|
||||
DEFAULT_CLIENT_UDP_PORT = 20002
|
||||
};
|
||||
|
||||
enum HandlerType
|
||||
{
|
||||
AuthEventHandler = 0,
|
||||
GameEventHandler = 1,
|
||||
MAX_HANDLER = 2
|
||||
};
|
||||
|
||||
enum AddressType
|
||||
{
|
||||
PublicAddr = 0,
|
||||
PrivateAddr = 1,
|
||||
MoveZoneAddr = 2,
|
||||
MAX_ADDRESS = 3
|
||||
};
|
||||
|
||||
// ------------------------------------------------------------------------------------------------
|
||||
// <20><>Ʈ<EFBFBD><C6AE>ũ <20><><EFBFBD><EFBFBD> <20>÷<EFBFBD><C3B7><EFBFBD>
|
||||
// by Hades Kang
|
||||
void SetStatusFlag(unsigned long dwStatusFlag);
|
||||
unsigned long GetStatusFlag();
|
||||
|
||||
static bool IsNSFlagChecked(unsigned char ucCmdFlag); //<2F>ش<EFBFBD> <20>÷<EFBFBD><C3B7>װ<EFBFBD> üũ<C3BC>Ǿ<EFBFBD><C7BE><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
static bool IsNSFlagChainChecked(unsigned char ucCmdFlag); //<2F>ش<EFBFBD> <20>÷<EFBFBD><C3B7><EFBFBD> ü<><C3BC><EFBFBD><EFBFBD> üũ<C3BC>Ǿ<EFBFBD><C7BE><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
static void SetNSFlagOn(unsigned char ucCmdFlag); //<2F>ش<EFBFBD> <20>÷<EFBFBD><C3B7><EFBFBD> Ȱ<><C8B0>ȭ <20><>Ŵ - Send <20>ÿ<EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
static void SetNSFlagOff(unsigned char ucCmdFlag); //<2F>ش<EFBFBD> <20>÷<EFBFBD><C3B7><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20>͵<EFBFBD><CDB5><EFBFBD> <20><>Ȱ<EFBFBD><C8B0>ȭ <20><>Ŵ - Receive <20>ÿ<EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
static int CheckFlag( int* arrFlag ); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
// ------------------------------------------------------------------------------------------------
|
||||
// Management Address
|
||||
SOCKADDR_IN& GetAddress(AddressType eAddrType) { return m_Address[eAddrType]; }
|
||||
const char* GetAddressString(AddressType eAddrType) { return inet_ntoa(m_Address[eAddrType].sin_addr); }
|
||||
unsigned short GetAddressPort(AddressType eAddrType) { return ntohs(m_Address[eAddrType].sin_port); }
|
||||
|
||||
void SetAddress(AddressType eAddrType, SOCKADDR_IN& Address) { m_Address[eAddrType] = Address; }
|
||||
void SetAddress(AddressType eAddrType, const char* szAddress, unsigned port);
|
||||
void ClearAddress(AddressType eAddrType) { memset(m_Address + eAddrType, 0, sizeof(SOCKADDR_IN)); }
|
||||
|
||||
ClientNet::CClientEventHandler& GetHandler(HandlerType eHandlerType)
|
||||
{ return (0 == m_lpEventHandler[eHandlerType]) ? *m_lpNullEventHandler : *m_lpEventHandler[eHandlerType]; }
|
||||
|
||||
void SetHandler(ClientNet::CClientEventHandler* lpHandler, HandlerType eHandlerType);
|
||||
void ResetHandler(ClientNet::CClientEventHandler* lpHandler, HandlerType eHandlerType);
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϰ<EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϰų<CFB0> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ּҿ<D6BC> <20><><EFBFBD>ε<EFBFBD><CEB5><EFBFBD> <20>Ѵ<EFBFBD>.
|
||||
bool Open(const char* address, unsigned short usport,
|
||||
ClientNet::CClientEventHandler* lpEventHandler);
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD>Ǿ<EFBFBD><C7BE>ִ<EFBFBD><D6B4><EFBFBD> <20><><EFBFBD>θ<EFBFBD> <20><><EFBFBD>ɴ<EFBFBD>.
|
||||
bool IsConnected(HandlerType eHandlerType);
|
||||
|
||||
// MAX_SESSION<4F><4E> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>´<EFBFBD>.
|
||||
void Disconnect(HandlerType eHandlerType);
|
||||
|
||||
// <20><><EFBFBD><EFBFBD> <20><> <20><>Ŷ<EFBFBD><C5B6> ó<><C3B3><EFBFBD>Ѵ<EFBFBD>.
|
||||
void HandleEvents(DWORD dwProcessPerCall);
|
||||
|
||||
private:
|
||||
|
||||
void InitNSCheckList(); // Network Status <20><><EFBFBD><EFBFBD> Check List <20>ʱ<EFBFBD>ȭ ( Send, Receive )
|
||||
void InitSendCheckList();
|
||||
void InitReceiveCheckList();
|
||||
|
||||
SOCKADDR_IN m_Address[MAX_ADDRESS + 1];
|
||||
ClientNet::CClientEventHandler* m_lpEventHandler[MAX_HANDLER + 1];
|
||||
ClientNet::CClientEventHandler* m_lpNullEventHandler;
|
||||
|
||||
ClientNet::CClientEventHandlerMgr* m_lpEventHandlerMgr;
|
||||
|
||||
unsigned long m_dwStatusFlag;
|
||||
std::vector<unsigned char> m_SendCheckList[CmdFinalPacketNum]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> üũ <20>ؾ<EFBFBD><D8BE>ϴ<EFBFBD> Ŀ<>ǵ<EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ ( <20>ϳ<EFBFBD><CFB3><EFBFBD><EFBFBD><EFBFBD> true <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ʴ´<CAB4>! )
|
||||
std::vector<unsigned char> m_ReceiveCheckList[CmdFinalPacketNum]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> üũ <20>ؾ<EFBFBD><D8BE>ϴ<EFBFBD> Ŀ<>ǵ<EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ ( <20><><EFBFBD><EFBFBD> false<73><65> ó<><C3B3><EFBFBD>Ѵ<EFBFBD>. )
|
||||
std::bitset<CmdFinalPacketNum> m_bStatusFlag;
|
||||
};
|
||||
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user