⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rcpserver.h

📁 远程控制软件源代码
💻 H
字号:
#ifndef _RCPSERVER_H_
#define _RCPSERVER_H_
///////////////////////////////////////////////
//
// 帮助宏
#define SERVER_LISTEN_PORT		4813
#define SAFE_DELETE_ARRAY(x)  if(x!=NULL) { delete[] x; x = NULL; }
#define SAFE_CLOSE_HANDLE(x)  if(x!=NULL) { CloseHandle( x ); x = NULL; }

#define WSAERRORSTRING (WSAErrorString(WSAGetLastError()))


#ifdef _DEBUG	// 调试输出宏
#define DEBUGOUTPUT1(x) cout << x << endl;
#define DEBUGOUTPUT2(x, y) cout << x << y << endl;
#define DEBUGOUTPUT3(x, y, z) cout << x << y << z << endl;
#else
#define DEBUGOUTPUT1(x) 
#define DEBUGOUTPUT2(x, y) 
#define DEBUGOUTPUT3(x, y, z)
#endif

#define WM_RCASERVEREXIT	(WM_USER+100)

// 定义应答状态码
#define RCA_RESPONSE_200_OK			200
#define RCA_RESPONSE_404_NOTFOUND	404
#define RCA_RESPONSE_808_BYEBYE		808
#define RCA_RESPONSE_502_FAILED		502

///////////////////////////////////////////
//	RCA 协议头结构 大小为 40 个字节
//
typedef struct _RCARequestHeader{

	char	rcaID[4];		// "RCA\0"
	DWORD	dwHeaderType;	// header type
	BOOL	bNeedResponse;	// 是否需要应答
	WORD	wMajorVersion;	// 主版本号
	WORD	wMinorVersion;	// 次版本号
	DWORD	dwRequestID;	// 请求操作的 ID 号
	DWORD	requestBytes;	// 请求的总字节数

	char	reserved[16];	// 保留 24 个字节

} RCAREQUESTHEADER, *PRCAREQUESTHEADER;


typedef struct _RCAResponseHeader {
	
	char	rcaID [4];		// RCA ID "RCA\0"
	DWORD	dwHeaderType;	// RCA header type
	DWORD	dwStatusCode;	// RCA response status code
	DWORD	dwTotalBytes;	// response total bytes
	
	char	reserved[24];	// 保留 28 个字节

}RCARESPONSEHEADER, *PRCARESPONSEHEADER;


#define RCAHEADER_TYPE_REQUEST		1		// 请求头
#define RCAHEADER_TYPE_RESPONSE		2		// 响应头
#define RCAHEADER_TYPE_KEEPALIVE	3		// 保活包

typedef struct _RCAKeepAliveHeader {

	char	rcaID[4];
	DWORD	dwHeaderType;

	char reserved[32];
}RCAKEEPALIVEHEADER, *PRCAKEEPALIVEHEADER;

typedef struct _RCAHeader {
	char	rcaID[4];
	DWORD	dwHeaderType;

	char reserved[32];	
}RCAHEADER, *PRCAHEADER;

typedef struct _RCARequestHandleData {
	
	SOCKET  sockRemote;
	DWORD   dwRemoteAddress;
	DWORD	dwRemotePort;
	DWORD   reserved;

} RCAREQUESTHANDLEDATA;


// 一个根据特定ID 进行处理的函数的指针类型
typedef 
BOOL
( WINAPI *RCAREQUESTIDHANDLER)
( 
	SOCKET				sockRemote, 
	RCAREQUESTHANDLEDATA* pData, 
	RCAREQUESTHEADER *	pRCAHead, 
	HANDLE				hEventArray[2]
);


#endif

⌨️ 快捷键说明

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