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:
99
Server/NFAuthTool/NFAuthServer/NaveServer/NFServerCtrl.h
Normal file
99
Server/NFAuthTool/NFAuthServer/NaveServer/NFServerCtrl.h
Normal file
@@ -0,0 +1,99 @@
|
||||
/**
|
||||
* @file NFServerCtrl.h
|
||||
* @brief IOCP Base <20><>Ʈ<EFBFBD>ѷ<EFBFBD> Ŭ<><C5AC><EFBFBD><EFBFBD>
|
||||
* @remarks
|
||||
* @author <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(edith2580@gmail.com)
|
||||
* @date 2009-05-09
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "NFConnection.h"
|
||||
#include <vector>
|
||||
|
||||
namespace NaveServer {
|
||||
|
||||
// extern INT iMaxRecvPacket;
|
||||
|
||||
typedef struct LISTENER
|
||||
{
|
||||
SOCKET s; // Listen Socket
|
||||
INT nPort; // <20><>Ʈ
|
||||
CHAR cBindQue; // <20><><EFBFBD>ε<EFBFBD> ť
|
||||
|
||||
VOID Init()
|
||||
{
|
||||
s = INVALID_SOCKET; // Listen Socket
|
||||
nPort = 0; // <20><>Ʈ
|
||||
cBindQue = 0;
|
||||
}
|
||||
|
||||
VOID Release()
|
||||
{
|
||||
// Ŭ<><C5AC><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> ť<><C5A5> <20><><EFBFBD><EFBFBD>Ÿ<EFBFBD><C5B8> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <20>ɼ<EFBFBD>
|
||||
struct linger li = {1, 0}; // Default: SO_DONTLINGER
|
||||
shutdown(s, SD_BOTH);
|
||||
setsockopt(s, SOL_SOCKET, SO_LINGER, (CHAR *)&li, sizeof(li));
|
||||
closesocket(s );
|
||||
|
||||
Init();
|
||||
}
|
||||
}*LPLISTENER;
|
||||
|
||||
class NFServerCtrl
|
||||
{
|
||||
public:
|
||||
NFServerCtrl();
|
||||
virtual ~NFServerCtrl();
|
||||
|
||||
public:
|
||||
SOCKET CreateListenSocket(INT nServerPort, CHAR cBindQue = 32); // Listen Socket <20><><EFBFBD><EFBFBD>
|
||||
HANDLE ConnectIOCPSocket(SOCKET sckListener); // Listen Socket <20><> iocp <20><><EFBFBD>Ͽ<EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
inline HANDLE GetIOCP() { return m_hIOCP; };
|
||||
|
||||
inline BOOL IsRun() { return m_bServerRun; };
|
||||
inline BOOL IsPause() { return m_bPause; };
|
||||
|
||||
static unsigned __stdcall WINAPI Thread_MainEx(LPVOID lpVoid); // IOCP <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> Thread
|
||||
static unsigned __stdcall WINAPI Process_MainEx(LPVOID lpVoid); // Process ó<><C3B3> Thread
|
||||
static unsigned __stdcall WINAPI Packet_MainEx(LPVOID lpVoid); // Packet ó<><C3B3> Thread
|
||||
|
||||
virtual VOID Update(); // Process ó<><C3B3> <20>Լ<EFBFBD>
|
||||
|
||||
virtual VOID ShowServerInfo(); // <20><><EFBFBD>۽<EFBFBD> ȭ<>鿡 <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> ǥ<><C7A5>
|
||||
|
||||
virtual BOOL CreateSession(SOCKET sckListener) { return TRUE; } // Client Session <20><> <20><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD>.
|
||||
virtual BOOL ReleaseSession() { return TRUE; } // Client Session <20><> <20><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD>.
|
||||
|
||||
protected:
|
||||
|
||||
HANDLE CreateIOCP(); // IOCP <20>ڵ<EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
BOOL InitSocket(); // <20><><EFBFBD><EFBFBD> <20><><EFBFBD>̺귯<CCBA><EAB7AF> Ȱ<><C8B0>
|
||||
INT GetNumberOfProcess(); // CPU<50><55><EFBFBD><EFBFBD> <20><><EFBFBD>Ѵ<EFBFBD> => <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>̿<EFBFBD>
|
||||
INT GetNumberOfThread() { return m_nMaxThreadNum; }; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>Ѵ<EFBFBD>.
|
||||
|
||||
BOOL Start(INT nPort, INT nMaxConn, INT nMaxThreadNum = 0); // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
VOID Pause(BOOL bPause);
|
||||
BOOL Stop(); // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
|
||||
protected:
|
||||
INT m_nMaxThreadNum; // <20>ִ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
||||
HANDLE* m_pWorkThread; // IOCP Work <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ڵ<EFBFBD>
|
||||
HANDLE m_hIOCP; // IOCP <20>ڵ<EFBFBD>
|
||||
|
||||
std::vector<LISTENER> m_vecListener; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ʸ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ִ<EFBFBD>.
|
||||
|
||||
HANDLE m_hProcThread; // <20><><EFBFBD>μ<EFBFBD><CEBC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
HANDLE m_hPacketThread; // PacketUpdate<74><65> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
INT m_iPort;
|
||||
INT m_iMaxConn;
|
||||
|
||||
BOOL m_bPause;
|
||||
BOOL m_bServerRun; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ǹ<EFBFBD> TRUE<55><45><EFBFBD><EFBFBD>.
|
||||
|
||||
NFUpdateManager* m_pUpdateManager;
|
||||
};
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user