Files
wnmj-normal/Servers/服务器组件/网络服务/ClientSocketHead.h
2026-03-03 13:56:44 +08:00

126 lines
3.8 KiB
C++

#ifndef WH_SOCKET_HEAD_FILE
#define WH_SOCKET_HEAD_FILE
//////////////////////////////////////////////////////////////////////////////////
//平台文件
#include "..\..\全局定义\Platform.h"
#include "..\服务核心\ServiceCoreHead.h"
//////////////////////////////////////////////////////////////////////////////////
//公共定义
//导出定义
#ifndef YS_SOCKET_CLASS
#ifdef YS_SOCKET_DLL
#define YS_SOCKET_CLASS _declspec(dllexport)
#else
#define YS_SOCKET_CLASS _declspec(dllimport)
#endif
#endif
//模块定义
#ifndef _DEBUG
#define YS_SOCKET_DLL_NAME TEXT("ClientSocket.dll") //组件名字
#else
#define YS_SOCKET_DLL_NAME TEXT("ClientSocketD.dll") //组件名字
#endif
//////////////////////////////////////////////////////////////////////////////////
//公共定义
//关闭原因
#define SHUT_REASON_INSIDE 0 //内部原因
#define SHUT_REASON_NORMAL 1 //正常关闭
#define SHUT_REASON_REMOTE 2 //远程关闭
#define SHUT_REASON_TIME_OUT 3 //网络超时
#define SHUT_REASON_EXCEPTION 4 //异常关闭
//////////////////////////////////////////////////////////////////////////////////
//公共定义
//网络状态
#define SOCKET_STATUS_IDLE 0 //空闲状态
#define SOCKET_STATUS_WAIT 1 //等待状态
#define SOCKET_STATUS_CONNECT 2 //连接状态
//连接错误
#define CONNECT_SUCCESS 0 //连接成功
#define CONNECT_FAILURE 1 //连接失败
#define CONNECT_EXCEPTION 2 //参数异常
#define CONNECT_PROXY_FAILURE 3 //连接成功
#define CONNECT_PROXY_USER_INVALID 4 //用户无效
//////////////////////////////////////////////////////////////////////////////////
#ifdef _UNICODE
#define VER_IClientSocket INTERFACE_VERSION(1,1)
static const GUID IID_IClientSocket = { 0xa870d592, 0x447a, 0x40bd, 0x00ae, 0x4e, 0x5e, 0x64, 0xde, 0xce, 0x22, 0xed };
#else
#define VER_IClientSocket INTERFACE_VERSION(1,1)
static const GUID IID_IClientSocket={0x8dfd434a,0xfb21,0x4178,0x00b0,0x3b,0xe6,0x32,0x9f,0x0b,0x5b,0x2e};
#endif
//网络接口
interface IClientSocket : public IUnknownEx
{
//配置接口
public:
//设置标识
virtual VOID SetSocketID(WORD wSocketID)=NULL;
//设置接口
virtual bool SetTCPSocketSink(IUnknownEx * pIUnknownEx)=NULL;
//信息接口
public:
//网络状态
virtual BYTE GetSocketStatus()=NULL;
//发送间隔
virtual DWORD GetLastSendTick()=NULL;
//接收间隔
virtual DWORD GetLastRecvTick()=NULL;
//操作接口
public:
//关闭连接
virtual VOID CloseSocket()=NULL;
//连接操作
virtual BYTE Connect(DWORD dwServerIP, WORD wPort)=NULL;
//连接操作
virtual BYTE Connect(LPCTSTR pszServerIP, WORD wPort)=NULL;
//发送函数
virtual WORD SendData(WORD wMainCmdID, WORD wSubCmdID)=NULL;
//发送函数
virtual WORD SendData(WORD wMainCmdID, WORD wSubCmdID, VOID * pData, WORD wDataSize)=NULL;
};
//////////////////////////////////////////////////////////////////////////////////
#ifdef _UNICODE
#define VER_IClientSocketSink INTERFACE_VERSION(1,1)
static const GUID IID_IClientSocketSink = { 0xdb0f09dd, 0x65e4, 0x441f, 0x0094, 0xb1, 0xfe, 0x80, 0x8c, 0x1d, 0xf2, 0x65 };
#else
#define VER_IClientSocketSink INTERFACE_VERSION(1,1)
static const GUID IID_IClientSocketSink={0x231416e8,0x74b0,0x472d,0x009e,0xc3,0x4a,0x22,0xe5,0x21,0x09,0x37};
#endif
//网络接口
interface IClientSocketSink : public IUnknownEx
{
//网络事件
public:
//连接事件
virtual bool OnEventClientSocketLink(WORD wSocketID, INT nErrorCode) = NULL;
//关闭事件
virtual bool OnEventClientSocketShut(WORD wSocketID, BYTE cbShutReason) = NULL;
//读取事件
virtual bool OnEventClientSocketRead(WORD wSocketID, TCP_Command Command, VOID * pData, WORD wDataSize) = NULL;
};
//////////////////////////////////////////////////////////////////////////////////
DECLARE_MODULE_HELPER(ClientSocket, YS_SOCKET_DLL_NAME, "CreateClientSocket")
//////////////////////////////////////////////////////////////////////////////////
#endif