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>
100 lines
2.7 KiB
C++
100 lines
2.7 KiB
C++
/**
|
|
* @file NFDefine.h
|
|
* @brief Packet에 관련된 기본 Define 및 스트럭쳐 선언
|
|
* @remarks
|
|
* @author 강동명(edith2580@gmail.com)
|
|
* @date 2009-05-09
|
|
*/
|
|
#pragma once
|
|
|
|
namespace NaveServer {
|
|
|
|
// 패킷 처리를 UpdateQue를 이용해 처리할것인지에 대한 Define
|
|
// 이걸 활성화 시키면 패킷을 처리할때 Receive스레드가 아닌
|
|
// Process스레드에서 패킷을 업데이트 한다.
|
|
|
|
// UPDATEQUE 방식은 Work스레드에서 Packet이 완성되면 PacketQue를 이용해
|
|
// 패킷을 처리한다. (MMO시에 필요)
|
|
#define ENABLE_UPDATEQUE
|
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
// [1] User Define
|
|
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
#define DEF_MAXUSER 50 // Maximum connections for Test
|
|
|
|
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
// [2] Server Declarations
|
|
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
#define IOCP_SHUTDOWN ((DWORD) -1L) // Closing Server Message
|
|
#define DEF_SERVER_PORT 25000 // PORT Number ( Client와 동일 해야함 )
|
|
|
|
enum ESHOW_MSGTYPE
|
|
{
|
|
ACCEPT_FAILED,
|
|
CLOSE_SOCKET,
|
|
DEAD_CONNECTION,
|
|
CONNECT_SUCCESS,
|
|
CONNECT_FAILED,
|
|
DISPATCH_FAILED,
|
|
DOIOSWITCH_FAILED,
|
|
// accept
|
|
ALLOCACPT_FAILED,
|
|
PREPAREACPT_FAILED,
|
|
|
|
// send, recv
|
|
PREPARERECVSIZE_FAILED,
|
|
PREPARESENDSIZE_FAILED,
|
|
|
|
ALLOCRECV_FAILED,
|
|
ALLOCSEND_FAILED,
|
|
|
|
PREPARERECV_FAILED,
|
|
PREPARESEND_FAILED,
|
|
|
|
RELEASEACPT_FAILED,
|
|
RELEASERECV_FAILED,
|
|
RELEASESEND_FAILED,
|
|
|
|
BINDIOCP_FAILED,
|
|
|
|
RECVPOST_FAILED,
|
|
RECVPOSTPENDING_FAILED,
|
|
|
|
// ALLOCPROC_FAILED,
|
|
SENDPOST_FAILED,
|
|
SENDPOSTPENDING_FAILED,
|
|
};
|
|
|
|
enum CONNECT_EVENT
|
|
{
|
|
CONNECT_NONE,
|
|
CONNECT_TRUE,
|
|
CONNECT_FALSE,
|
|
DISCONNECT_TURE,
|
|
CLOSEOPEN_TRUE,
|
|
};
|
|
|
|
/// 열거형 정의 : 클라이언트 작동 상태를 정의 한다
|
|
typedef enum CONN_STATUS
|
|
{
|
|
ClientIoUnknown, /// Raw status
|
|
ClientIoAccept, /// accept status
|
|
ClientIoRead, /// read status
|
|
ClientIoWrite, /// write status
|
|
}*pCONN_STATUS;
|
|
|
|
/// 확장 오버랩 구조체 : IOCP처리시 사용
|
|
typedef struct OVERLAPPEDPLUS {
|
|
OVERLAPPED overlapped; /// OVERLAPPED struct
|
|
SOCKET sckListen; /// listen socket handle
|
|
SOCKET sckClient; /// send/recv socket handle
|
|
CONN_STATUS nConnState; /// operation flag
|
|
WSABUF wbuf; /// WSA buffer
|
|
DWORD dwRemain; ///
|
|
DWORD dwBytes; /// Processing Data Size
|
|
DWORD dwFlags; ///
|
|
PVOID pClientConn; /// Processing Client
|
|
}*LPOVERLAPPEDPLUS;
|
|
|
|
} |