#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;
|
};
|