/* 说明:存放接口及常用结构 */ #ifndef _COMMON_H #define _COMMON_H // 确定编译环境 #define IN_LINUX #include #include #include #ifdef IN_LINUX //#include #include #include #include #include #include #include #include #include #else #include #include #include #include #include #endif #pragma comment(lib,"ws2_32.lib") #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 BUFSIZE 65535 #define CONFIG "config.ini" //工具的版本 #define VERSION "1.1.1" //应答消息 #define RSP_OK "0" #define RSP_FAILED "1" #define RET_OK 0 #define RET_FAILED 1 //支持的命令类型(命令类型的定义字符串不超过 MAX_CMDTYPE_LENGTH 定义的长度) #define COPYFILE "copyfile" #define CMD "cmd" #define CMDWAIT "cmdwait" //等待客户端命令执行完成 #define SENDFILE "sendfile" #define FINDPROC "findproc" #define RSP "rsp" //应答消息 #define CMDECHO "cmdecho" #define CMD_FALG_WAIT 0 #define CMD_FALG_NOWAIT 1 #define CMD_ECHO 2 //服务器端口号,从配置文件中读取 int g_port; #ifdef IN_LINUX /*--------------------------------- *说明: 与客户端进行交互 *参数说明: *返回值: 0成功,否则失败 -----------------------------------*/ void * TalkToClient_linux(void *data); /*--------------------------------- *说明: 发送数据给客户端 *参数说明: socketID: 已经建立连接的socket句柄 buffer : 需发送给客户端的数据 *返回值: 0成功,否则失败 -----------------------------------*/ int SendDataToClient_linux(int socketID, char *data, int iDataLen); /*--------------------------------- *说明: 接收来自给客户端的数据 *参数说明: socketID: 已经建立连接的socket句柄 buffer : 为收到的数据 *返回值: 0 断开连接 大于0 收到数据的长度 -1 失败 -----------------------------------*/ int RecvDataFromClient_linux(int socketID, char *buffer, int iBufLen); /*--------------------------------- *说明: 在linux环境下查找指定进程是否存在 *参数说明: *返回值: 0 存在,其他表示不存在 -----------------------------------*/ int FindProcess_linux(char *pProcessName); /*--------------------------------- *说明: 初始化服务连接及监听 *参数说明: *返回值: 0成功,否则失败 -----------------------------------*/ int InitServer_linux(); /*--------------------------------- *说明: 开始提供服务 *参数说明: *返回值: 0成功,否则失败 -----------------------------------*/ int StartService_linux(int server_socket); #else /*--------------------------------- *说明: 与客户端进行交互 *参数说明: *返回值: 0成功,否则失败 -----------------------------------*/ ULONG __stdcall TalkToClient_windows(void* lpParameter); /*--------------------------------- *说明: 发送数据给客户端 *参数说明: socketID: 已经建立连接的socket句柄 buffer : 需发送给客户端的数据 *返回值: 0成功,否则失败 -----------------------------------*/ int SendDataToClient_windows(SOCKET socketID, char *data, int iDataLen); /*--------------------------------- *说明: 接收来自给客户端的数据 *参数说明: socketID: 已经建立连接的socket句柄 buffer : 为收到的数据,调用者必须手动释放该空间 *返回值: 0 断开连接 大于0 收到数据的长度 -1 失败 -----------------------------------*/ int RecvDataFromClient_windows(SOCKET socketID, char *buffer, int iBufLen); /*--------------------------------- *说明: 在windows环境下查找指定进程是否存在 *参数说明: *返回值: 0 存在,其他表示不存在 -----------------------------------*/ int FindProcess_windows(char *pProcessName); /*--------------------------------- *说明: 初始化服务连接及监听 *参数说明: *返回值: 0成功,否则失败 -----------------------------------*/ int InitServer_windows(); /*--------------------------------- *说明: 开始提供服务 *参数说明: *返回值: 0成功,否则失败 -----------------------------------*/ int StartService_windows(SOCKET server_socket); #endif /*--------------------------------- *说明: 执行拷贝文件到客户端 *参数说明: socketID: 已经建立连接的socket句柄 data : 需要拷贝的文件名(全路径) *返回值: 0成功,否则失败 -----------------------------------*/ int CopyFileToClient(void* socketID, char *pFile); /*--------------------------------- *说明: 接收来自客户端的文件 *参数说明: socketID: 已经建立连接的socket句柄 file : 需要保存的文件名(全路径) *返回值: 0成功,否则失败 -----------------------------------*/ int RecvFileFromClient(void* socketID, char *pFile); /*--------------------------------- *说明: 执行系统命令 *参数说明: socketID: 已经建立连接的socket句柄 pCmd : 执行的命令 *返回值: 0成功,否则失败 -----------------------------------*/ int RunSystemCmd(void* socketID, char *pCmd, int iWaitFlag); /*--------------------------------- *说明: 解析客户端发送过来的命令 *参数说明: socketID: 已经建立连接的socket句柄 data : 客户端发送过来的命令 *返回值: 0成功,否则失败 -----------------------------------*/ int ParseCmd(void* socketID, char *data); /*--------------------------------- *说明: 发送应答消息给客户端 *参数说明: socketID: 已经建立连接的socket句柄 data : 发送数据 *返回值: 0成功,否则失败 -----------------------------------*/ int SendRspToClient(void* socketID, char *result); /*--------------------------------- *说明: 等待客户端的应答 *参数说明: socketID: 已经建立连接的socket句柄 *返回值: 0成功,否则失败 -----------------------------------*/ int WaitRspFromClient(void* socketID); /*--------------------------------- *说明: 解析应答消息 *参数说明: *返回值: 0成功,否则失败 -----------------------------------*/ int ParseRsp(char* strRsp); /*--------------------------------- *说明: 查看指定的程序是否正在运行 *参数说明: socketID: 已经建立连接的socket句柄 data : 进程名 *返回值: 0成功,否则失败 -----------------------------------*/ int FindProcess(void* socketID, char *data); /*--------------------------------- *说明: 初始化 *参数说明: *返回值: 0成功,否则失败 -----------------------------------*/ int Init(); /*--------------------------------- *说明: 运行 *参数说明: *返回值: 0成功,否则失败 -----------------------------------*/ int Run(); #endif