#pragma once #include "NetJoiner.h" #include "IOCPNetwork2Parent.h" class AFX_EXT_CLASS CNetClient : public CIOCPController { public: CNetClient(); virtual ~CNetClient(); void SetIN2P(IIOCPNetwork2Parent* pN2M) { m_pN2M = pN2M; } BOOL SetServerInfo(int ST, short sNetworkCode, short sVersion, int nPacketCount = 100); CNetPacket* GetPacket(int nMilSecond= 100); CNetJoiner* GetJoiner() { return &m_SocketJoiner; } BOOL SendToServer(int nType, SHORT sResult, int nModuleNo); BOOL SendToServer(int nType, SHORT sResult, int nModuleNo, CNetPacket* pPacket); BOOL SendToServer(int nType, SHORT sResult, int nModuleNo, SHORT sPacketIdx, CNetPacket* pPacket); // Á¢¼Ó ÃʱâÈ­. BOOL DisconnectServer(); protected: // Server SocketÀÌ Á¢¼ÓÀ» Çã¿ëÇßÀ» ¶§ È£ÃâÇÏ´Â ÇÔ¼ö. virtual int AcceptedSocket(pPerSocketContext pSocketCtx, ULONG ulIP, int nPort); // Client SocketÀÌ Á¢¼ÓµÇ¾úÀ» ¶§ È£ÃâÇÏ´Â ÇÔ¼ö virtual BOOL ConnectedSocket(pPerSocketContext pSocketCtx); // Socket¿¡¼­ Receive°¡ ¿Ï·áµÇ¾úÀ» ¶§ CIOCPController¿¡¼­ È£ÃâÇÏ´Â ÇÔ¼ö - Data Parseing virtual BOOL RecvCompleted(pPerSocketContext pSocketCtx, DWORD dwBytes); // SocketÀ» ÅëÇØ Send°¡ ¿Ï·áµÇ¾úÀ» ¶§ CIOCPController¿¡¼­ È£ÃâÇÏ´Â ÇÔ¼ö. - ÈÄó¸® virtual BOOL SendCompleted(pPerSocketContext pSocketCtx, DWORD dwBytes); // SocketÀÌ ²÷¾îÁ³À½À» ¾Ë·ÁÁÖ±â À§ÇÑ ÇÔ¼ö virtual void SocketClosed(pPerSocketContext pSocketCtx); private: IIOCPNetwork2Parent* m_pN2M; // Packet ±¸Á¶Ã¼ int m_nPacketCount; CNetPacket* m_pPacket; CRITICAL_SECTION m_csPacket; CRITICAL_SECTION m_csSending; int m_nPacketIdx; CNetJoiner m_SocketJoiner; int m_nServerSocketType; // Network Information short m_sNetworkCode; short m_sVersion; };