/* 说明:存放接口及常用结构 */ #ifndef _COMMON_H #define _COMMON_H // 确定编译环境 #define IN_LINUX #include #include #include #ifdef IN_LINUX //#include #include #include #include #include #include #include #else #include #include #include #include #include #pragma comment(lib,"wsock32.lib") #endif #define MAX_BUFFER_SIZE 1024 #define MAX_CMDLINE_LENGTH 200 #define MAX_THREAD_NUM 40 #define LENGTH_OF_LISTEN_QUEUE 20 #define MAX_IP_LENGTH 20 #define MAX_CMDTYPE_LENGTH 20 #define MAX_RSP_LENGTH 40 #define MAX_RECONNECT_TIMERS 3 #define BUFSIZE 65535 #define MAX_CONNECT_TIMEOUT 3600 #define CMDLIST "cmdlist" //应答消息 #define RSP_OK "0" #define RSP_FAILED "1" #define RET_OK 0 #define RET_FAILED 1 #define CMD_FALG_WAIT 0 #define CMD_FALG_NOWAIT 1 #define CMD_ECHO 2 //支持的命令类型(命令类型的定义字符串不超过 MAX_CMDTYPE_LENGTH 定义的长度) #define COPYFILE "copyfile" #define CMD "cmd" //只负责下发命令,不管执行的情况 #define CMDWAIT "cmdwait" //等待客户端命令执行完成 #define SENDFILE "sendfile" #define FINDPROC "findproc" #define RSP "rsp" //应答消息 #define CMDECHO "cmdecho" //显示执行结果,等待客户端命令执行完成 #ifdef IN_LINUX /*--------------------------------- *说明: 发送数据给服务端 *参数说明: socketID: 已经建立连接的socket句柄 buffer : 需发送给服务端的数据 *返回值: 0成功,否则失败 -----------------------------------*/ int SendDataToServer_linux(int socketID, char *data, int iLen); /*--------------------------------- *说明: 接收来自给服务端的数据 *参数说明: socketID: 已经建立连接的socket句柄 buffer : 为收到的数据,调用者必须手动释放该空间 iBufLen : 发送数据的长度 *返回值: 0成功,否则失败 -----------------------------------*/ int RecvDataFromServer_linux(int socketID, char *buffer, int iBufLen); /*--------------------------------- *说明: 连接服务端 *参数说明: *返回值: 0成功,否则失败 -----------------------------------*/ int ConnectServer_linux(const char* pServerIP, int iServerPort, int iTimeout); /*--------------------------------- *说明: 与客户端进行交互线程 *参数说明: *返回值: 0成功,否则失败 -----------------------------------*/ void* Thread_linux(void* para); #else /*--------------------------------- *说明: 发送数据给服务端 *参数说明: socketID: 已经建立连接的socket句柄 buffer : 需发送给服务端的数据 iBufLen : 发送数据的长度 *返回值: 0成功,否则失败 -----------------------------------*/ int SendDataToServer_windows(int socketID, char *data, int iBufLen); /*--------------------------------- *说明: 接收来自给服务端的数据 *参数说明: socketID: 已经建立连接的socket句柄 buffer : 为收到的数据,调用者必须手动释放该空间 *返回值: 0成功,否则失败 -----------------------------------*/ int RecvDataFromServer_windows(int socketID, char *buffer, int iBufLen); /*--------------------------------- *说明: 连接服务端 *参数说明: *返回值: -----------------------------------*/ SOCKET ConnectServer_windows(const char* pServerIP, int iServerPort, int iTimeout); /*--------------------------------- *说明: 与客户端进行交互 *参数说明: *返回值: 0成功,否则失败 -----------------------------------*/ ULONG __stdcall Thread_windows(void *para); #endif /*--------------------------------- *说明: 从服务端拷贝文件 *参数说明: socketID: 已经建立连接的socket句柄 data : 需要拷贝的文件信息 *返回值: 0成功,否则失败 -----------------------------------*/ int CopyFileFromServer(void* socketID, char *data); /*--------------------------------- *说明: 发送文件给服务端 *参数说明: socketID: 已经建立连接的socket句柄 data : 需要发送的文件信息 *返回值: 0成功,否则失败 -----------------------------------*/ int SendFileToServer(void* socketID, char *data); /*--------------------------------- *说明: 查看服务端当前指定的程序是否正在运行 *参数说明: socketID: 已经建立连接的socket句柄 data : 需要发送的文件信息 *返回值: 0成功,否则失败 -----------------------------------*/ int FindProcessFromServer(void* socketID, char *data); /*--------------------------------- *说明: 创建线程 *参数说明: *返回值: 0成功,否则失败 -----------------------------------*/ int CreateSubThread(char *para); /*--------------------------------- *说明: 解析cmdlist上的命令 *参数说明: *返回值: 0成功,否则失败 -----------------------------------*/ int ParseCmd(char *data, char *ip, int *port, char *cmd); /*--------------------------------- *说明: 与客户端进行交互 *参数说明: *返回值: 0成功,否则失败 -----------------------------------*/ int TalkToServer(void* para, int iTimeout); /*--------------------------------- *说明: 发送系统命令到服务端 *参数说明: *返回值: 0成功,否则失败 -----------------------------------*/ int SendCmdToServer(void* socketID, char* para, int isWaitFlag); /*--------------------------------- *说明: 解析应答消息 *参数说明: *返回值: 0成功,否则失败 -----------------------------------*/ int ParseRsp(char* strRsp); /*--------------------------------- *说明: 发送应答消息给服务端 *参数说明: socketID: 已经建立连接的socket句柄 data : 发送数据 *返回值: 0成功,否则失败 -----------------------------------*/ int SendRspToSever(void* socketID, char *result); /*--------------------------------- *说明: 等待服务端的应答 *参数说明: socketID: 已经建立连接的socket句柄 *返回值: 0成功,否则失败 -----------------------------------*/ int WaitRspFromServer(void* socketID); /*--------------------------------- *说明: 执行cmdlist中的命令 *参数说明: *返回值: 0成功,否则失败 -----------------------------------*/ int RunCmdlist(); /*--------------------------------- *说明: 执行命令行参数 *参数说明: *返回值: 0成功,否则失败 -----------------------------------*/ int RunCmd(int argc, char **argv); #endif