126 lines
3.8 KiB
C
126 lines
3.8 KiB
C
|
|
#ifndef WH_SOCKET_HEAD_FILE
|
|||
|
|
#define WH_SOCKET_HEAD_FILE
|
|||
|
|
|
|||
|
|
//////////////////////////////////////////////////////////////////////////////////
|
|||
|
|
|
|||
|
|
//ƽ̨<C6BD>ļ<EFBFBD>
|
|||
|
|
#include "..\..\ȫ<>ֶ<EFBFBD><D6B6><EFBFBD>\Platform.h"
|
|||
|
|
#include "..\<5C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ServiceCoreHead.h"
|
|||
|
|
|
|||
|
|
//////////////////////////////////////////////////////////////////////////////////
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
#ifndef YS_SOCKET_CLASS
|
|||
|
|
#ifdef YS_SOCKET_DLL
|
|||
|
|
#define YS_SOCKET_CLASS _declspec(dllexport)
|
|||
|
|
#else
|
|||
|
|
#define YS_SOCKET_CLASS _declspec(dllimport)
|
|||
|
|
#endif
|
|||
|
|
#endif
|
|||
|
|
|
|||
|
|
//ģ<>鶨<EFBFBD><E9B6A8>
|
|||
|
|
#ifndef _DEBUG
|
|||
|
|
#define YS_SOCKET_DLL_NAME TEXT("ClientSocket.dll") //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
#else
|
|||
|
|
#define YS_SOCKET_DLL_NAME TEXT("ClientSocketD.dll") //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
#endif
|
|||
|
|
|
|||
|
|
//////////////////////////////////////////////////////////////////////////////////
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
//<2F>ر<EFBFBD>ԭ<EFBFBD><D4AD>
|
|||
|
|
#define SHUT_REASON_INSIDE 0 //<2F>ڲ<EFBFBD>ԭ<EFBFBD><D4AD>
|
|||
|
|
#define SHUT_REASON_NORMAL 1 //<2F><><EFBFBD><EFBFBD><EFBFBD>ر<EFBFBD>
|
|||
|
|
#define SHUT_REASON_REMOTE 2 //Զ<>̹ر<CCB9>
|
|||
|
|
#define SHUT_REASON_TIME_OUT 3 //<2F><><EFBFBD>糬ʱ
|
|||
|
|
#define SHUT_REASON_EXCEPTION 4 //<2F>쳣<EFBFBD>ر<EFBFBD>
|
|||
|
|
|
|||
|
|
//////////////////////////////////////////////////////////////////////////////////
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>״̬
|
|||
|
|
#define SOCKET_STATUS_IDLE 0 //<2F><><EFBFBD><EFBFBD>״̬
|
|||
|
|
#define SOCKET_STATUS_WAIT 1 //<2F>ȴ<EFBFBD>״̬
|
|||
|
|
#define SOCKET_STATUS_CONNECT 2 //<2F><><EFBFBD><EFBFBD>״̬
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD>Ӵ<EFBFBD><D3B4><EFBFBD>
|
|||
|
|
#define CONNECT_SUCCESS 0 //<2F><><EFBFBD>ӳɹ<D3B3>
|
|||
|
|
#define CONNECT_FAILURE 1 //<2F><><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>
|
|||
|
|
#define CONNECT_EXCEPTION 2 //<2F><><EFBFBD><EFBFBD><EFBFBD>쳣
|
|||
|
|
#define CONNECT_PROXY_FAILURE 3 //<2F><><EFBFBD>ӳɹ<D3B3>
|
|||
|
|
#define CONNECT_PROXY_USER_INVALID 4 //<2F>û<EFBFBD><C3BB><EFBFBD>Ч
|
|||
|
|
|
|||
|
|
//////////////////////////////////////////////////////////////////////////////////
|
|||
|
|
|
|||
|
|
#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
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD>
|
|||
|
|
interface IClientSocket : public IUnknownEx
|
|||
|
|
{
|
|||
|
|
//<2F><><EFBFBD>ýӿ<C3BD>
|
|||
|
|
public:
|
|||
|
|
//<2F><><EFBFBD>ñ<EFBFBD>ʶ
|
|||
|
|
virtual VOID SetSocketID(WORD wSocketID)=NULL;
|
|||
|
|
//<2F><><EFBFBD>ýӿ<C3BD>
|
|||
|
|
virtual bool SetTCPSocketSink(IUnknownEx * pIUnknownEx)=NULL;
|
|||
|
|
|
|||
|
|
//<2F><>Ϣ<EFBFBD>ӿ<EFBFBD>
|
|||
|
|
public:
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>״̬
|
|||
|
|
virtual BYTE GetSocketStatus()=NULL;
|
|||
|
|
//<2F><><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD>
|
|||
|
|
virtual DWORD GetLastSendTick()=NULL;
|
|||
|
|
//<2F><><EFBFBD>ռ<EFBFBD><D5BC><EFBFBD>
|
|||
|
|
virtual DWORD GetLastRecvTick()=NULL;
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD>
|
|||
|
|
public:
|
|||
|
|
//<2F>ر<EFBFBD><D8B1><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
virtual VOID CloseSocket()=NULL;
|
|||
|
|
//<2F><><EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD>
|
|||
|
|
virtual BYTE Connect(DWORD dwServerIP, WORD wPort)=NULL;
|
|||
|
|
//<2F><><EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD>
|
|||
|
|
virtual BYTE Connect(LPCTSTR pszServerIP, WORD wPort)=NULL;
|
|||
|
|
//<2F><><EFBFBD>ͺ<EFBFBD><CDBA><EFBFBD>
|
|||
|
|
virtual WORD SendData(WORD wMainCmdID, WORD wSubCmdID)=NULL;
|
|||
|
|
//<2F><><EFBFBD>ͺ<EFBFBD><CDBA><EFBFBD>
|
|||
|
|
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
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD>
|
|||
|
|
interface IClientSocketSink : public IUnknownEx
|
|||
|
|
{
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD>
|
|||
|
|
public:
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD>
|
|||
|
|
virtual bool OnEventClientSocketLink(WORD wSocketID, INT nErrorCode) = NULL;
|
|||
|
|
//<2F>ر<EFBFBD><D8B1>¼<EFBFBD>
|
|||
|
|
virtual bool OnEventClientSocketShut(WORD wSocketID, BYTE cbShutReason) = NULL;
|
|||
|
|
//<2F><>ȡ<EFBFBD>¼<EFBFBD>
|
|||
|
|
virtual bool OnEventClientSocketRead(WORD wSocketID, TCP_Command Command, VOID * pData, WORD wDataSize) = NULL;
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
//////////////////////////////////////////////////////////////////////////////////
|
|||
|
|
|
|||
|
|
DECLARE_MODULE_HELPER(ClientSocket, YS_SOCKET_DLL_NAME, "CreateClientSocket")
|
|||
|
|
|
|||
|
|
//////////////////////////////////////////////////////////////////////////////////
|
|||
|
|
|
|||
|
|
#endif
|