Files
wnmj/Servers/服务器组件/网站网关服务器/TCPSocket.h

59 lines
1.1 KiB
C
Raw Normal View History

2026-02-13 14:34:15 +08:00
#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;
};