SDC C-Project CF Review 프로그램
LYW
2022-08-05 5f12658f37fed156e67b3318542c98f359341ffd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#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;
};