mrDarker
2025-07-24 7096025175b6d100923dcd66c1face07d2e28555
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
#pragma once
#include <afxSock.h>
#include "AcceptClient.h"
#include <functional>
 
namespace BEQ {
 
    typedef std::function<int(void* pServer, CAcceptClient* pClient)> ONACCEPT;
    typedef std::function<int(void* pServer)> ONCLOSE;
    
    typedef struct _ServerListener
    {
        ONACCEPT        onAccept;
        ONCLOSE            onClose;
    } ServerListener;
 
    class CSocketServer :
        public CAsyncSocket
    {
    public:
        CSocketServer();
        CSocketServer::CSocketServer(int port, BEQ::ServerListener listener);
        ~CSocketServer();
 
    public:
        void setListenter(BEQ::ServerListener listener);
        void setPort(UINT port);
        void init();
 
    public:
        virtual void OnAccept(int nErrorCode);
        virtual void OnClose(int nErrorCode);
        virtual void OnReceive(int nErrorCode);
 
    private:
        UINT m_port;
        ServerListener m_listener;
    };
}