88 lines
3.8 KiB
C++
88 lines
3.8 KiB
C++
// 종합솔루션.cpp : 콘솔 응용 프로그램에 대한 진입점을 정의합니다.
|
|
//
|
|
|
|
#include "stdafx.h"
|
|
|
|
#include <PacketHandler/PacketHandler.h>
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
static void ReadIOCPDescFromFile(const char szSectionName[], IOHANDLER_DESC & desc, char * ini);
|
|
static void GetIOHANDLER_DESC_INFO(sConfigureNetwork* pINFO);
|
|
|
|
//------------------------------------------------------------------------------------------------
|
|
// 클라이언트 콜백
|
|
//------------------------------------------------------------------------------------------------
|
|
static NetworkObject* CreateClientSideAcceptedObject();
|
|
static void DestroyClientSideAcceptedObject(NetworkObject* pNetworkObject);
|
|
static void DestroyClientSideConnectedObject(NetworkObject* pNetworkObject);
|
|
|
|
DECLARE_BASE_WISE_STEP_FUNCTION()
|
|
{
|
|
sConfigureNetwork* pINFO = Manipulater::GetNetworkArguments();
|
|
|
|
IOHANDLER_DESC& rDESC = pINFO->InfoIOHANDLER_DESC;
|
|
GetIOHANDLER_DESC_INFO(pINFO);
|
|
|
|
IOCPServer* pIOCPServer = new IOCPServer();
|
|
pIOCPServer->Init(&rDESC, 1);
|
|
|
|
Manipulater::IOCPServerREF() = pIOCPServer;
|
|
|
|
PacketHandler::RegisterHandler();
|
|
|
|
PACKET_CONTROL::SetShowPacketStream(TRUE);
|
|
};
|
|
|
|
REGISTER_STEP_HANDLER_BASE(eWISE_ROUTINES_INIT_NETWORK);
|
|
|
|
//------------------------------------------------------------------------------------------------
|
|
// 클라이언트 콜백
|
|
//------------------------------------------------------------------------------------------------
|
|
static NetworkObject* CreateClientSideAcceptedObject()
|
|
{
|
|
ASSERT(!"여기에 들어오는 것은 뭐양?");
|
|
return NULL;
|
|
}
|
|
|
|
static void DestroyClientSideAcceptedObject(NetworkObject* pNetworkObject)
|
|
{
|
|
ASSERT(!"여기에 들어오는 것은 뭐양?");
|
|
}
|
|
|
|
static void DestroyClientSideConnectedObject(NetworkObject* pNetworkObject)
|
|
{
|
|
}
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
static void GetIOHANDLER_DESC_INFO(sConfigureNetwork* pINFO)
|
|
{
|
|
IOHANDLER_DESC& rDESC = pINFO->InfoIOHANDLER_DESC;
|
|
|
|
__READ_CONFIG_STRING_IP(pINFO->strLocalIP.GetBUFFER(), "SERVER_IOHANDLER", "IP", NULL, Manipulater::CONFIG_NETWORK_FILENAME);
|
|
pINFO->strLocalIP.MakeSafeString();
|
|
__READ_CONFIG_NUMBER(pINFO->wLocalListenPort, "SERVER_IOHANDLER", "PORT", 0, Manipulater::CONFIG_NETWORK_FILENAME);
|
|
|
|
__READ_CONFIG_STRING_IP(pINFO->strLoginFrontIP.GetBUFFER(), "LOGIN_FRONT_INFO", "IP", NULL, Manipulater::CONFIG_NETWORK_FILENAME);
|
|
pINFO->strLoginFrontIP.MakeSafeString();
|
|
__READ_CONFIG_NUMBER(pINFO->wLoginFrontPort, "LOGIN_FRONT_INFO", "PORT", 0, Manipulater::CONFIG_NETWORK_FILENAME);
|
|
|
|
rDESC.dwIoHandlerKey = CLIENT_IOHANDLER;
|
|
ReadIOCPDescFromFile("CLIENT_IOHANDLER", rDESC, (CHAR*)Manipulater::CONFIG_NETWORK_FILENAME);
|
|
rDESC.fnCreateAcceptedObject = CreateClientSideAcceptedObject;
|
|
rDESC.fnDestroyAcceptedObject = DestroyClientSideAcceptedObject;
|
|
rDESC.fnDestroyConnectedObject = DestroyClientSideConnectedObject;
|
|
}
|
|
|
|
static void ReadIOCPDescFromFile(const CHAR szSectionName[], IOHANDLER_DESC& rDESC, CHAR* configfile)
|
|
{
|
|
__READ_CONFIG_NUMBER(rDESC.dwMaxAcceptSession, szSectionName, "MAX_ACCEPT_SESSION", 0, configfile);
|
|
__READ_CONFIG_NUMBER(rDESC.dwMaxConnectSession, szSectionName, "MAX_CONNECT_SESSION", 0, configfile);
|
|
__READ_CONFIG_NUMBER(rDESC.dwSendBufferSize, szSectionName, "SEND_BUFFER_SIZE", 0, configfile);
|
|
__READ_CONFIG_NUMBER(rDESC.dwRecvBufferSize, szSectionName, "RECV_BUFFER_SIZE", 0, configfile);
|
|
__READ_CONFIG_NUMBER(rDESC.dwMaxPacketSize, szSectionName, "MAX_PACKET_SIZE", 0, configfile);
|
|
__READ_CONFIG_NUMBER(rDESC.dwTimeOut, szSectionName, "TIME_OUT", 0, configfile);
|
|
__READ_CONFIG_NUMBER(rDESC.dwNumberOfAcceptThreads, szSectionName, "NUMBER_OF_ACCEPT_THREADS", 0, configfile);
|
|
__READ_CONFIG_NUMBER(rDESC.dwNumberOfConnectThreads, szSectionName, "NUMBER_OF_CONNECT_THREADS", 0, configfile);
|
|
__READ_CONFIG_NUMBER(rDESC.dwNumberOfIoThreads, szSectionName, "NUMBER_OF_IO_THREADS", 0, configfile);
|
|
}
|