#ifndef COMMON_H
|
#define COMMON_H
|
#include <string.h>
|
//私有协议封装
|
|
//请求响应结构体有数据头+数据体
|
|
//使用枚举来统一各种功能类型】
|
|
enum TypeInfo{
|
LOGIN_REQ, //登录请求
|
LOGIN_RES,
|
VERSIONUPDATA_REQ, // 版本更新请求
|
VERSIONUPDATA_RES,
|
VERSIONNUM_REQ, //版本号请求
|
VERSIONNUM_RES,
|
UPLOAD_FILE_REQ,
|
UPLOAD_FILE_RES,
|
VERSIONINFOENTRY_REQ, //版本信息条目
|
VERSIONINFOENTRY_RES
|
};
|
|
struct Head
|
{
|
int type; // 功能类型,解决每个包的具体作用,区分业务
|
int len; //封包长度
|
|
};
|
// 登录业务
|
// 登录请求
|
struct LoginReq
|
{
|
Head head;
|
|
char user_name[32];
|
char password[32];
|
LoginReq(){
|
head.type=LOGIN_REQ;
|
head.len=sizeof(LoginReq);
|
}
|
};
|
//登录权限结构体
|
struct PermissionInfo
|
{
|
int admin; //管理员
|
int history; //历史查看
|
int version_manager;//版本管理
|
int log_search; //日志查看
|
int flaw_mark ; //缺陷标记
|
|
};
|
|
//登录响应
|
struct LoginRes
|
{
|
Head head;
|
char user_name[32];
|
int state; // 登录状态
|
PermissionInfo per;
|
LoginRes(){
|
head.type=LOGIN_RES;
|
head.len=sizeof(LoginRes);
|
}
|
};
|
struct VersionUpdataReq //版本更新请求的结构体
|
{
|
Head head;
|
VersionUpdataReq(){
|
head.type=VERSIONUPDATA_REQ;
|
head.len=sizeof(VersionUpdataReq);
|
}
|
};
|
struct VersionUpdataRes //版本更新响应的结构体
|
{
|
Head head;
|
char version_id[64]; // 版本号
|
char update_date[32]; //更新时间
|
char file_path[128]; //服务端提供最新版本的本地路径
|
VersionUpdataRes(){
|
head.type=VERSIONUPDATA_REQ;
|
head.len=sizeof(VersionUpdataReq);
|
}
|
};
|
struct VersionNumReq //版本号请求
|
{
|
Head head;
|
VersionNumReq(){
|
head.type=VERSIONNUM_REQ;
|
head.len=sizeof(VersionNumReq);
|
}
|
};
|
struct VersionNumRes
|
{
|
Head head;
|
char version_id[64];
|
VersionNumRes(){
|
head.type=VERSIONNUM_RES;
|
head.len=sizeof(VersionNumRes);
|
}
|
};
|
//文件传输功能
|
struct FileInfo
|
{
|
char file_name[256];
|
long long file_size;
|
char s_filepath[32];
|
char content[0]; //柔性数组结构体
|
};
|
struct UploadFileReq
|
{
|
Head head;
|
FileInfo fileInfo;
|
UploadFileReq(){
|
head.type=UPLOAD_FILE_REQ;
|
head.len=sizeof(UploadFileReq);
|
}
|
};
|
struct UploadFileRes
|
{
|
Head head;
|
int status;
|
long long file_size; //总大小
|
long long file_cuesize; //文件已传大小
|
UploadFileRes(){
|
head.type=UPLOAD_FILE_RES;
|
head.len=sizeof(UploadFileRes);
|
}
|
};
|
//版本信息录入---版本信息条目
|
struct VersionInfoEntryReq
|
{
|
Head head;
|
char version_id[64];
|
char version_id_old[64];
|
char s_filepath[32]; //服务器放最新版本的路径
|
char version_description[256]; //更新描述
|
char version_creattime[32]; //更新时间
|
char filename[16][128]; //支持多文件上传
|
long long filesize[16]; //文件组的大小
|
char c_filepath[16][128]; //客户端的安装路径
|
int filenum; //一次版本更新所需文件个数
|
|
VersionInfoEntryReq(){
|
head.type=VERSIONINFOENTRY_REQ;
|
head.len=sizeof(VersionInfoEntryReq);
|
}
|
};
|
//响应
|
struct VersionInfoEntryRes {
|
Head head;
|
char version_id_old[64]; // 版本号
|
VersionInfoEntryRes()
|
{
|
head.type = VERSIONINFOENTRY_RES;
|
head.len = sizeof(VersionInfoEntryRes);
|
}
|
};
|
|
|
|
|
|
|
#endif // COMMON_H
|