arnetinterface.h

来自「wangchuanDll.rar 网络传输的DLL 源代码」· C头文件 代码 · 共 116 行

H
116
字号
#ifndef ArNetInterfaceH
#define ArNetInterfaceH

#define NS_NET_BEGIN  namespace NERCAR_NET {
#define NS_NET_END    };

#define USE_NETPKG   using namespace NERCAR_NET;

NS_NET_BEGIN
//-----------------Define DataTypes-----------------------------------------------------


struct ArSenderInfo_T
{
	unsigned long ulAddress;
	int   iPort;
};

typedef void  (__stdcall *pOnReceiveData)(char* pcData, int iLength, ArSenderInfo_T& Info, void* pPara);
typedef void  (__stdcall *pOnConnect)(ArSenderInfo_T& RemoteInfo, void* pPara);

//---------------Define Interfaces------------------------------------------------------
//Define Interfaces of Server

class ArServer_T
{
public:
	virtual bool  __stdcall		Create(int iPort) = 0;
	virtual bool  __stdcall		Destroy(void) = 0;
	virtual bool  __stdcall		Open(void) = 0;
	virtual bool  __stdcall		Close(void) = 0;
	virtual bool  __stdcall     SetMutiCastAdrr(int iAddr) = 0;//iAddr范围从 1到255
	
	virtual bool  __stdcall     SetDataSocketOpt(bool bHasRcvBuffer = true, bool bHasSndBuffer = true,
		                                         bool bEnableLinger = true, int iUserRcvBufferLen = 1024) = 0;
	virtual bool  __stdcall     SetMessageSocketOpt(bool bHasRcvBuffer = true, bool bHasSndBuffer = true,
											        bool bEnableLinger = true, int iUserRcvBufferLen = 1024) = 0;
	virtual bool  __stdcall     SetMutiCastSocketOpt(bool bHasRcvBuffer = true, bool bHasSndBuffer = true,
												     bool bEnableLinger = true, int iUserRcvBufferLen = 1024) = 0;

	virtual int   __stdcall		ClientNum(void) = 0;
	virtual bool  __stdcall     ClientAddrss(int iIndex, unsigned long& ulAddress) = 0;
	virtual bool  __stdcall		CloseClient(unsigned long ulClientAddr) = 0;
	
	virtual int   __stdcall		SendData(unsigned long ulClientAddr, char* pcData, int iLength) = 0;
	virtual int   __stdcall		SendDataPackage(unsigned long ulClientAddr,char* pcData, int iLength) = 0;
	virtual int   __stdcall		BroadCastAllClients(char* pcData, int iDataLength) = 0;
 
	virtual bool  __stdcall		OnReceiveData(pOnReceiveData func) = 0;
	virtual bool  __stdcall		OnAccept(pOnConnect func) = 0;	
	virtual bool  __stdcall		OnDisconnect(pOnConnect func) = 0;
	    
};
//---------------------------------------------------------
//Define Interfaces of Client
class ArClient_T
{
public:
	virtual bool  __stdcall		Create(unsigned long ulAddress, int iPort) = 0;
	virtual bool  __stdcall		Destroy(void) = 0;
	virtual bool  __stdcall		Open(void) = 0;
	virtual bool  __stdcall     SetMutiCastAdrr(int iAddr) = 0;//iAddr范围从 1到255
	
	virtual bool  __stdcall     SetDataSocketOpt(bool bHasRcvBuffer = true, bool bHasSndBuffer = true,
											     bool bEnableLinger = true, int iUserRcvBufferLen = 1024) = 0;
	virtual bool  __stdcall     SetMessageSocketOpt(bool bHasRcvBuffer = true, bool bHasSndBuffer = true,
											        bool bEnableLinger = true, int iUserRcvBufferLen = 1024) = 0;
	virtual bool  __stdcall     SetMutiCastSocketOpt(bool bHasRcvBuffer = true, bool bHasSndBuffer = true,
											         bool bEnableLinger = true, int iUserRcvBufferLen = 1024) = 0;

	virtual bool  __stdcall		Close(void) = 0;
    virtual int   __stdcall		SendData(char* pcData, int iLength) = 0;
	virtual int  __stdcall		SendDataPackage(char* pcData, int iLength) = 0;
		
	virtual bool  __stdcall		OnReceiveData(pOnReceiveData func) = 0;
	virtual bool  __stdcall		OnConnect(pOnConnect func) = 0;
	virtual bool  __stdcall     OnDisconnect(pOnConnect func) = 0;
};
//---------------------------------------------------------

class ArNetTool_T
{
public:
	virtual unsigned long	__stdcall	StrToAddress(char* strAddressInfo) = 0;
	virtual bool			_stdcall	AddressToStr(unsigned long ulAddress, char* pStrAddress) = 0;
	virtual bool			__stdcall	LocalAddress(unsigned long& ulAddress) = 0; 
	virtual bool			__stdcall   PingRemote(unsigned long ulAddress,int& iTime) = 0;
	virtual bool            __stdcall   GetHostName(char* strName, int iStrLength) = 0;
	virtual bool            __stdcall   ParseAddress(unsigned long ulAddress, 
		                                             int* pa, 
													 int* pb, 
													 int* pc,
													 int* pd) = 0;

	virtual bool __stdcall		Destroy(void) = 0;
};

//---------------------------------------------------------

class ArNetFactory_T  
{
public:
	virtual ArServer_T*		__stdcall CreateServer(void* pPara) = 0;
	virtual ArClient_T*		__stdcall CreateClient(void* pPara) = 0;
	virtual ArNetTool_T*	__stdcall CreateNetTool(void) = 0;
	virtual bool            __stdcall GetVersion(char* strVersion) = 0;
	virtual bool __stdcall DestroyServer(ArServer_T* pServer) = 0;
	virtual bool __stdcall DestroyClient(ArClient_T* pClient) = 0;
	virtual bool __stdcall DestroyTool(ArNetTool_T* pTool) = 0;
	virtual bool __stdcall Destroy(void) = 0;	
};

NS_NET_END 
#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?