59 lines
1.1 KiB
C
59 lines
1.1 KiB
C
|
|
#pragma once
|
|||
|
|
|
|||
|
|
#include <winsock2.h>
|
|||
|
|
#include "ByteBuffer.h"
|
|||
|
|
#include "Overlapped.h"
|
|||
|
|
#include "IOCPServer.h"
|
|||
|
|
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD>Ľӿ<C4BD>
|
|||
|
|
class MessageProcesser
|
|||
|
|
{
|
|||
|
|
public:
|
|||
|
|
MessageProcesser(){}
|
|||
|
|
virtual ~MessageProcesser(){}
|
|||
|
|
virtual bool processMessage(void *data, DWORD cmdLen) = 0;
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
|
|||
|
|
class CIOCPServer;
|
|||
|
|
|
|||
|
|
// Ĭ<><C4AC><EFBFBD><EFBFBD><EFBFBD>ݰ<EFBFBD><DDB0><EFBFBD>ʽ
|
|||
|
|
// WORD | BIN
|
|||
|
|
// Size | Datas
|
|||
|
|
// ǰ<><C7B0><EFBFBD><EFBFBD><EFBFBD>ֽڴ<D6BD><DAB4><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD>ȵ<EFBFBD><C8B5><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
class CTCPSocket : public MessageProcesser
|
|||
|
|
{
|
|||
|
|
friend class CIOCPServer;
|
|||
|
|
|
|||
|
|
public:
|
|||
|
|
CTCPSocket(WORD id, WORD socket, DWORD dwClientAddr, CIOCPServer* pIOCPServer);
|
|||
|
|
virtual ~CTCPSocket(void);
|
|||
|
|
|
|||
|
|
WORD getID() { return m_wID; }
|
|||
|
|
|
|||
|
|
SOCKET getSocket() { return m_hSocket; }
|
|||
|
|
//<2F><>ȡ<EFBFBD><C8A1>ַ
|
|||
|
|
DWORD getClientAddr() { return m_dwClientAddr; }
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
virtual bool sendData(void* data, DWORD len);
|
|||
|
|
|
|||
|
|
public:
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
virtual bool processRecvData(void* data, DWORD len);
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
|
|||
|
|
virtual bool processMessage(void *data, DWORD cmdLen){return true;}
|
|||
|
|
|
|||
|
|
public:
|
|||
|
|
CIOCPServer* m_pIOCPServer;
|
|||
|
|
|
|||
|
|
private:
|
|||
|
|
WORD m_wID;
|
|||
|
|
SOCKET m_hSocket;
|
|||
|
|
DWORD m_dwClientAddr;
|
|||
|
|
ByteBuffer m_recvBuffer;
|
|||
|
|
};
|