2020-01-13 10:27:00 -05:00

233 lines
6.1 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
说明:存放接口及常用结构
*/
#ifndef _COMMON_H
#define _COMMON_H
// 确定编译环境
#define IN_LINUX
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#ifdef IN_LINUX
//#include <sys/io.h>
#include <sys/types.h>
#include <unistd.h>
#include <pthread.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <sys/errno.h>
#else
#include <io.h>
#include <direct.h>
#include <windows.h>
#include <basetsd.h>
#include <winsock.h>
#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