#include "stdafx.h" #include "TempServerSession.h" #include #include "PacketStruct.h" #include "ServerSessionFactory.h" #include "ServerSessionManager.h" //#include "PacketHandler.h" TempServerSession::TempServerSession() { m_bFirstPacketReceived = FALSE; } TempServerSession::~TempServerSession() { } VOID TempServerSession::Release() { m_bFirstPacketReceived = FALSE; } // ¸¶½ºÅÍ¿¡ Á¢¼ÓÇÏ´Â ¼­¹öµéÀº ÀÚ½ÅÀÇ OnAccept´Â È£ÃâµÇÁö ¾Ê°í TempServerSession::OnAccept¸¸ È£ÃâµÈ´Ù. VOID TempServerSession::OnAccept( DWORD dwNetworkIndex ) { ServerSession::OnAccept( dwNetworkIndex ); } VOID TempServerSession::OnRecv( BYTE *pMsg, WORD wSize ) { __UNUSED(wSize); assert( m_bFirstPacketReceived == FALSE ); m_bFirstPacketReceived = TRUE; // Ç®·ÎºÎÅÍ NetworkObject¸¦ ¹Þ¾Æ ¿Â´Ù. MSG_SERVER_TYPE *pRecvMsg = (MSG_SERVER_TYPE *)pMsg; ServerSession *pNewSession = ServerSessionFactory::Instance()->AllocServerSession( (eSERVER_TYPE)pRecvMsg->m_byServerType ); // »õ·Î¿î NetworkObject·Î ±³Ã¼ Redirect( pNewSession ); /* // ¼­¹ö Á¤º¸ Å×ÀÌºí¿¡¼­ IP¿Í ¼­¹ö ŸÀÔÀ¸·Î ¼­¹ö¸¦ ã¾Æ¼­ ±× ۸¦ ¼¼ÆÃÇÑ´Ù. DWORD dwServerKey = ServerInfoManager::Instance()->GetServerKey( (eSERVER_TYPE)pRecvMsg->m_byServerType, GetIP() ); pNewSession->SetServerKey( dwServerKey ); */ // »õ·Î¿î ¼¼¼Ç¿¡ Á¤º¸ º¹»ç pNewSession->SetSessionIndex( GetSessionIndex() ); pNewSession->OnRedirect(); // TempServer Á¤¸®Çϰí this->Release(); ServerSessionManager::Instance()->RemoveServer( this->GetSessionIndex() ); ServerSessionFactory::Instance()->FreeServerSession( this ); // ½ÇÁ¦ »ç¿ëÇÒ ¼¼¼ÇÀ» ¸Å´ÏÀú¿¡ Ãß°¡ ServerSessionManager::Instance()->AddServer( pNewSession ); }