// Á¾ÇÕ¼Ö·ç¼Ç.cpp : ÄÜ¼Ö ÀÀ¿ë ÇÁ·Î±×·¥¿¡ ´ëÇÑ ÁøÀÔÁ¡À» Á¤ÀÇÇÕ´Ï´Ù. // #include "stdafx.h" #include ////////////////////////////////////////////////////////////////////////// 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); }