今天我们的“本地云”练手项目开工第一天,刚开完会,来记录个日报。
项目成员:
成员 | 职位 | CSDN账号 | 昵称 |
---|---|---|---|
1号 | 服务器(组长) | https://blog.csdn.net/qq_43762191 | 看,未来 |
2号 | 服务器 | https://me.csdn.net/qq_45792305 | qq_45792305 |
3号 | 客户端 | https://me.csdn.net/blackcamouflage | blackcamouflage |
4号 | 客户端 | https://me.csdn.net/luyaozhima | 路遥芝麻 |
5号 | 测试端 | https://me.csdn.net/jxy0219 | jxy0219 |
6号 | 服务器 | https://me.csdn.net/weixin_44784684 | 若晓梦 |
7号 | 服务器 | ||
8号 | 客户端(组长) | https://me.csdn.net/qq_42151344 | MXN179 |
9号 | 客户端 | https://me.csdn.net/qq_46485161 | 别呀 |
5号 | 测试端 | https://me.csdn.net/jxy0219 | jxy0219 |
出勤情况:
组别 | 出勤情况 |
---|---|
1组 | 全勤 |
2组 | 服务器1号中暑了 |
会议内容
1、分组,分组情况如上。
2、确定项目秩序,明确组长的监督与协助职责,每日日报需要按时提交。
3、明确数据包协议:
#ifndef I_PACKET_PUBLIC_H
#define I_PACKET_PUBLIC_H
#include <string>
#include <iostream>
using namespace std;
#define MAX_LEN 256
/************接入层数据包头************/
typedef struct packet_header_st
{
int fd;//用于前后端通信即目标客户端fd(服务器用到)
int funcId; // 功能号
//登录包0x01,注册包0x02,找回密码0x03,修改密码0x04
//客户端获取文件列表0x11,上传文件0x12,下载文件0x13,共享文件0x14
//心跳0x21
int optid; // 操作码:请求0x00 和 应答0x01
int usrlenth;// 包体的长度
int packet_seq; //包序号
int packet_sum; //包总数
char srcAddr[6]; //预留
char dstAddr[6]; //预留
int syn; // 判断包头是否正确 0x04
}packet_header_t;
/************接入层数据包尾************/
typedef struct packet_tali_st//包尾,用来验证数据包的完整性
{
int pack_tail;//设置为0x05
}packet_tali_t;
/************数据包报文整体************/
typedef struct packet_all_st
{
packet_header_t head;
char body[packet_header_t::usrlenth];
packet_tali_st tail;
//unsigned len; //要发送的数据有效长度
}packet_all_st;
/************业务层数据包体************/
//客户端登录请求包
typedef struct login
{
int id;
char psw[10]; //密码
}Login_t;
//登录应答包
typedef struct res_login_st
{
int login_ret; //登录结果: 1-登录成功,0-登录失败
}res_login_t;
//客户端注册请求包
typedef struct Register
{
int id; //账号
char tel[12]; //11位手机号
char psw[10]; //密码
}Register_t;
//注册应答包
typedef struct res_register_st
{
int register_ret; //注册结果: 0-注册成功,1-注册失败
}res_register_t;
//客户端修改密码请求包
typedef struct Change_PWD
{
int id; //账号
char psw[10]; //密码
}c_pwd_t;
//改密码应答包
typedef struct res_changepwd_st
{
int change_ret; //改密码结果: 0-改密码成功,1-改密码失败
}res_cpwd_t;
//找回密码请求包
typedef struct findpwd
{
int id;
char tel[12];
}F_Pwd_t;
//找回密码应答包
typedef struct res_findpwd_st
{
int find_ret; //找回结果: 0-找回成功,1-找回失败
char pwd[20]; //密码
}res_fpwd_t;
/************请求业务交易流水请求包************/
//上传文件请求包
typedef struct UpFile
{
int id;
}UpFile_t;
//下载视频请求包
typedef struct Download_File
{
int user_id; //用户ID
char *file_id; //文件名
}Download_t;
//文件列表请求包
typedef struct File_List
{
char *dir_name; //目录名
}FileList_t;
//文件列表应答包
typedef struct Res_VideoList
{
char V[800];
}res_filelist;
#endif // PACKET_BASE_H
4、明确一些技术点:
数据包传输使用不定长包、IPC进程间通信方法采用TCP、客户端自行管理下载之后的文件、客户端自行保留历史记录等
5、今日任务:
需求分析、日报、项目进度甘特图。