126 lines
3.8 KiB
C++
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 |