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:
2025-11-29 20:17:20 +09:00
parent 5d3cd64a25
commit dd97ddec92
11602 changed files with 1446576 additions and 0 deletions

View File

@@ -0,0 +1,317 @@
/**
* @file NFConnection.h
* @brief <09>ϳ<EFBFBD><CFB3><EFBFBD> Connection<6F><6E> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <20><>ü<EFBFBD>̴<EFBFBD>.
* @remarks
* @author <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(edith2580@gmail.com)
* @date 2009-05-09
*/
#pragma once
#include "NFMemPool.h"
#include "NFPacketPool.h"
#include <NaveNet/NFIOBuffer.h>
#include <Nave/NFSync.h>
namespace NaveServer {
/**
* @class NFConnection
* @brief <20>ϳ<EFBFBD><CFB3><EFBFBD> <20><><EFBFBD>ϰ<EFBFBD>ü<EFBFBD><C3BC> <20><>Ÿ<EFBFBD><C5B8><EFBFBD><EFBFBD> 1<><31><EFBFBD><EFBFBD> Ŭ<><C5AC><EFBFBD>̾<EFBFBD>Ʈ<EFBFBD><C6AE> <20><>Ÿ<EFBFBD><C5B8><EFBFBD><EFBFBD>.
* @remarks
*
* @par
* @author Edith
* @date 2009-08-28
*/
class NFConnection
{
public:
NFConnection();
virtual ~NFConnection();
public:
// <20><> <20><>ü <20><><EFBFBD><EFBFBD>
/**
* @brief <09><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><>ü <20>ʱ<EFBFBD>ȭ
* @param dwIndex <09><>ü <20><><EFBFBD><EFBFBD> ID
* @param hIOCP IOCP Handle
* @param listener Listen Socket
* @param pPacketPool <09><>Ŷ Pool <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param nMaxBuf <09>ִ<EFBFBD> <20><><EFBFBD><EFBFBD>ũ<EFBFBD><C5A9>
* @return <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
virtual BOOL Create( DWORD dwIndex,
HANDLE hIOCP,
SOCKET listener,
NFPacketPool* pPacketPool,
INT nMaxBuf);
/**
* @brief <09><>Ŷ<EFBFBD><C5B6> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈó<C6AE><C3B3> <20>մϴ<D5B4>.
* @param Packet <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ <20><> <20><>Ŷ<EFBFBD><C5B6><EFBFBD><EFBFBD>
*/
virtual VOID UpdatePacket(NaveNet::NFPacket& Packet);
/**
* @brief <09><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
* @param bForce TRUE<55><45> <20><><EFBFBD>Ͽ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
*/
VOID Disconnect( BOOL bForce = FALSE );
/**
* @brief <09><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>մϴ<D5B4>.
*/
virtual VOID Clear() { return; };
/**
* @brief <09><>ü<EFBFBD><C3BC> Ŭ<><C5AC><EFBFBD>̾<EFBFBD>Ʈ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20>ʱ<EFBFBD>ȭ
* @param bForce TRUE<55><45> <20><><EFBFBD>Ͽ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
* @return <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
virtual BOOL Close_Open( BOOL bForce = FALSE );
/**
* @brief IOCP ó<><C3B3> <20>ڵ鸵
* @param lpOverlapPlus ó<><C3B3><EFBFBD><EFBFBD> <20><>Ŷ
* @return
*/
virtual BOOL DoIo( LPOVERLAPPEDPLUS lpOverlapPlus );
/**
* @brief <09><>Ŷ <20><><EFBFBD><EFBFBD>
* @param pPackte <20><><EFBFBD><EFBFBD> <20><>Ŷ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param Len <20><><EFBFBD><EFBFBD> <20><>Ŷ ũ<><C5A9>
* @return <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
virtual BOOL SendPost( CHAR* pPackte, INT Len );
/**
* @brief <09><>Ŷ <20><><EFBFBD><EFBFBD>
* @param Packet <20><><EFBFBD><EFBFBD> <20><>Ŷ <20><><EFBFBD><EFBFBD>ü
* @return <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
virtual BOOL SendPost( NaveNet::NFPacket& Packet);
/**
* @brief <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> IP<49><50><EFBFBD><EFBFBD>
* @param iIP <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 4<><34> <20>
* @return
*/
BOOL GetClientIP( INT* iIP );
/**
* @brief <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> IP<49><50><EFBFBD><EFBFBD>
* @param szIP <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @return
*/
BOOL GetClientIP( CHAR* szIP );
/**
* @brief <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> IP<49><50><EFBFBD><EFBFBD>
* @param szIP <20><><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @return
*/
BOOL GetClientIP( WCHAR* szIP );
/**
* @brief <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> IP<49><50><EFBFBD><EFBFBD>
* @param addr sockaddr_in <20><><EFBFBD><EFBFBD>
* @return
*/
BOOL GetClientIP( sockaddr_in& addr );
/**
* @brief <09><><EFBFBD>ᰳü<E1B0B3><C3BC> <20><><EFBFBD><EFBFBD> <20>ε<EFBFBD><CEB5><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>մϴ<D5B4>.
* @param iIndex <20><><EFBFBD>ᰳü<E1B0B3><C3BC> <20><><EFBFBD><EFBFBD> <20>ε<EFBFBD><CEB5><EFBFBD>
*/
inline VOID SetIndex(INT iIndex) { m_dwIndex = iIndex; };
/**
* @brief <09><><EFBFBD>ᰳü<E1B0B3><C3BC> <20><><EFBFBD><EFBFBD> <20>ε<EFBFBD><CEB5><EFBFBD> <20><><EFBFBD><EFBFBD>
* @return <20>ε<EFBFBD><CEB5><EFBFBD><EFBFBD><EFBFBD>
*/
inline DWORD GetIndex() { return m_dwIndex; }
/**
* @brief <09><><EFBFBD><EFBFBD> Tick <20><><EFBFBD><EFBFBD>
* @return <20><><EFBFBD><EFBFBD> Tick ī<><C4AB>Ʈ
*/
LONG GetRecvTickCnt();
/**
* @brief <09><><EFBFBD><EFBFBD> <20><>ü<EFBFBD><C3BC> Ȱ<><C8B0>ȭ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
* @return Ȱ<><C8B0>ȭ <20><><EFBFBD><EFBFBD>
*/
BOOL IsConnect();
/**
* @brief <09><><EFBFBD><EFBFBD> <20><>ü<EFBFBD><C3BC> <20><><EFBFBD>¸<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>մϴ<D5B4>.
* @param eState <09><><EFBFBD><EFBFBD> <20><>ü<EFBFBD><C3BC> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
*/
void SetConnectFlag(CONNECT_EVENT eState);
/**
* @brief <09><><EFBFBD>޵<EFBFBD> Overlapped<65><64>ü<EFBFBD><C3BC> <20>̿<EFBFBD><CCBF><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ü<EFBFBD><C3BC> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ų<EFBFBD><C5B2> <20>ʱ<EFBFBD>ȭ <20><>ŵ<EFBFBD>ϴ<EFBFBD>.
* @param lpOverlapPlus Overlapped <20><>ü
* @param bForce TRUE<55><45> <20><><EFBFBD>Ͽ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
*/
void SetClose_Open(LPOVERLAPPEDPLUS lpOverlapPlus, BOOL bForce=FALSE );
//------------------------ <20><> <20><> <20><> <20><> -------------------------//
protected:
/**
* @brief <09><>ü <20>ʱ<EFBFBD>ȭ, <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
* @return <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
virtual BOOL Open();
/**
* @brief Socket<65><74> IOCP <20><><EFBFBD>ε<EFBFBD> <20>۾<EFBFBD>
* @param lpOverlapPlus <20><><EFBFBD>ε<EFBFBD> <20><>ų Overlapped <20><><EFBFBD><EFBFBD>ü
* @return
*/
BOOL BindIOCP( LPOVERLAPPEDPLUS lpOverlapPlus );
/**
* @brief Accept<70><74>Ŷ <20>Ҵ<EFBFBD>
* @return <20>Ҵ<EFBFBD><D2B4><EFBFBD> Overlapped <20><><EFBFBD><EFBFBD>ü
*/
LPOVERLAPPEDPLUS PrepareAcptPacket();
/**
* @brief IOCP<43><50> <20>̿<EFBFBD><CCBF><EFBFBD> Recv Overlapped <20><><EFBFBD><EFBFBD>
* @param buflen <20><><EFBFBD><EFBFBD> ũ<><C5A9>
* @return <20>Ҵ<EFBFBD><D2B4><EFBFBD> Overlapped <20><><EFBFBD><EFBFBD>ü
*/
LPOVERLAPPEDPLUS PrepareRecvPacket(UINT buflen);
/**
* @brief IOCP<43><50> <20>̿<EFBFBD><CCBF><EFBFBD> Send Overlapped <20><><EFBFBD><EFBFBD>
* @param *psrcbuf <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param srclen <20><><EFBFBD><EFBFBD> ũ<><C5A9>
* @return <20>Ҵ<EFBFBD><D2B4><EFBFBD> Overlapped <20><><EFBFBD><EFBFBD>ü
*/
LPOVERLAPPEDPLUS PrepareSendPacket(CHAR *psrcbuf, UINT srclen);
/**
* @brief Accept <20><>Ŷ <20><><EFBFBD><EFBFBD>
* @param lpOverlapPlus <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Overlapped<65><64><EFBFBD><EFBFBD>ü
* @return <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
BOOL ReleaseAcptPacket(LPOVERLAPPEDPLUS lpOverlapPlus);
/**
* @brief Receive <20><>Ŷ <20><><EFBFBD><EFBFBD>
* @param lpOverlapPlus <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Overlapped<65><64><EFBFBD><EFBFBD>ü
* @return <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
BOOL ReleaseRecvPacket(LPOVERLAPPEDPLUS lpOverlapPlus);
/**
* @brief Send <20><>Ŷ <20><><EFBFBD><EFBFBD>
* @param lpOverlapPlus <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Overlapped<65><64><EFBFBD><EFBFBD>ü
* @return <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
BOOL ReleaseSendPacket(LPOVERLAPPEDPLUS lpOverlapPlus);
/**
* @brief <09><><EFBFBD><EFBFBD> Receive ó<><C3B3>
* @param buflen <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @return <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
BOOL RecvPost(UINT buflen=0);
/**
* @brief <09>α׿<CEB1> <20>޽<EFBFBD><DEBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>մϴ<D5B4>.
* @param MsgIndex <20>޽<EFBFBD><DEBD><EFBFBD> <20><><EFBFBD>̵<EFBFBD>
*/
virtual VOID ShowMessage(INT MsgIndex);
/**
* @brief <20><><EFBFBD><EFBFBD><EFBFBD>ڿ<EFBFBD><DABF><EFBFBD> Connect <20>̺<EFBFBD>Ʈ <20>߻<EFBFBD>
* @param bConnect Connect <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
virtual VOID OnConnect(BOOL bConnect) { };
/// Disconnect <20>̺<EFBFBD>Ʈ <20>߻<EFBFBD>
virtual VOID OnDisconnect() { };
// <20><><EFBFBD><EFBFBD> ó<><C3B3> <20><><EFBFBD><EFBFBD> <20>Լ<EFBFBD>
/**
* @brief <09>޼<EFBFBD><DEBC><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> Receive <20><>ȣ <20>߻<EFBFBD>, Socket<65><74><EFBFBD><EFBFBD>
* @param lpOverlapPlus Overlapped <20><><EFBFBD><EFBFBD>ü
* @return Recv ó<><C3B3> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
*/
virtual BOOL DispatchPacket( LPOVERLAPPEDPLUS lpOverlapPlus );
/**
* @brief <09><><EFBFBD><EFBFBD> <20><>Ŷ<EFBFBD><C5B6> ó<><C3B3><EFBFBD>ϴ<EFBFBD> <20>κ<EFBFBD><CEBA>̴<EFBFBD>
* @param Packet ó<><C3B3><EFBFBD><EFBFBD> <20><>Ŷ <20><><EFBFBD><EFBFBD>ü
*/
virtual VOID DispatchPacket( NaveNet::NFPacket& Packet )
{
// <20><><EFBFBD>ӹ޾Ƽ<DEBE> <20><>Ŷ<EFBFBD><C5B6> ó<><C3B3><EFBFBD>Ҷ<EFBFBD><D2B6><EFBFBD> <20>Ʒ<EFBFBD><C6B7><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ؼ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD>.
//Nave::Sync::CSSync Live(&m_Sync);
};
protected:
/// <20>ִ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
INT m_nMaxBuf;
/// <20>ִ<EFBFBD> <20><>Ŷ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
INT m_nMaxPacketSize;
/// Ŭ<><C5AC><EFBFBD>̾<EFBFBD>Ʈ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
SOCKET m_Socket;
/// Listener <20><><EFBFBD><EFBFBD>
SOCKET m_sckListener;
/// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ִ<EFBFBD> <20><>ü
sockaddr_in m_Local;
/// Ŭ<><C5AC><EFBFBD>̾<EFBFBD>Ʈ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ִ<EFBFBD> <20><>ü
sockaddr_in m_Peer;
/// <20><> Ŭ<><C5AC><EFBFBD>̾<EFBFBD>Ʈ <20><><EFBFBD><EFBFBD> <20><>ü<EFBFBD><C3BC> <20><>ȣ
INT m_dwIndex;
/// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ <20>˻<EFBFBD> <20><><EFBFBD><EFBFBD>
INT m_nBytesSent;
/// IOCP <20>ڵ<EFBFBD>
HANDLE m_hIOCP;
//<2F><> Ŭ<><C5AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD> IOCP<43><50><EFBFBD><EFBFBD> <20><>Ŷ<EFBFBD><C5B6> <20>ְ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Socket<65><74> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ǵ<EFBFBD> <20><><EFBFBD>۸<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD>.
/// <20><>ŶǮ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
NFPacketPool* m_pPacketPool;
/// <20><> <20><>ü<EFBFBD><C3BC> Ŭ<><C5AC><EFBFBD>̾<EFBFBD>Ʈ<EFBFBD><C6AE> <20><><EFBFBD><EFBFBD> <20>˻<EFBFBD>
BOOL m_bIsConnect;
/// <20><><EFBFBD><EFBFBD> Tick Count
LONG m_uRecvTickCnt;
/// Ŀ<>ؼ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
CONNECT_EVENT m_eConnectFlag;
/// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ʱ<EFBFBD>ȭ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
BOOL m_bForce;
/// Sync <20><>ü
Nave::NFSync m_Lock;
// checksum ó<><C3B3> /////////////////////////////////////////////
// CPacketIOBuffer<65><72> Recv<63><76><EFBFBD><EFBFBD> <20><>Ŷ <20><><EFBFBD><EFBFBD>(<28>̶<EFBFBD> <20><>ŶǮ<C5B6><C7AE> <20><><EFBFBD>ۿ<EFBFBD> <20>ִ<EFBFBD>)<29><> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> IOBuffer <20>̴<EFBFBD>.
// IOBuffer<65><72> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Recv <20><><EFBFBD><EFBFBD> <20><>Ŷ<EFBFBD><C5B6> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>Ŷ<EFBFBD><C5B6> <20>ƴҶ<C6B4> ó<><C3B3><EFBFBD>ϱ<EFBFBD> <20><><EFBFBD><EFBFBD> <20>ϳ<EFBFBD><CFB3><EFBFBD>
// <20><><EFBFBD><EFBFBD><EFBFBD>̴<EFBFBD>.
/// Recv<63><76> IOBuffer
NaveNet::NFPacketIOBuffer m_RecvIO;
// CPacket<65><74> <20>ϳ<EFBFBD><CFB3><EFBFBD> <20><>Ŷ<EFBFBD><C5B6> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> Ŭ<><C5AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD> IOBuffer <20><><EFBFBD><EFBFBD> <20><>Ŷ<EFBFBD><C5B6> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ҷ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ȴ<EFBFBD>.
// Packet<65><74><EFBFBD><EFBFBD> <20><>Ŷ <20><><EFBFBD>۰<EFBFBD> <20><EFBFBD><E8BFAD> <20><><EFBFBD>ǵǾ<C7B5> <20>ִ<EFBFBD>. (memcpy<70><79> <20><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ε尡 <20>߻<EFBFBD><DFBB>Ѵ<EFBFBD>.)
/// Recv<63><76> <20>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <20>ӽ<EFBFBD> <20><>Ŷ <20><><EFBFBD><EFBFBD>
NaveNet::NFPacket m_RecvPacket;
};
}