在目前的版本中,将网络数据传输方式改进成为网络数据报文(结构体)的形式传输,但比较不合理的一点是,传输数据的过程中总是要先传输 包头,再传输包体。因此,本节将多次收发报文改进为一次收发报文。
再回顾一下上一节的关键内容:
1、定义了四个网络数据包结构体
//DataPackge
struct Login
{
char userName[32];
char Password[32];
};
struct Logout
{
char userName[32];
};
struct LoginResult
{
int result;
};
struct LogoutResult
{
int result;
};
2、定义了一个包头结构体 和 命令枚举
enum CMD
{
CMD_LOGIN,
CMD_LOGIN_RESULT,
CMD_LOGINOUT,
CMD_LOGOUT_RESULT,
CMD_ERROR
};
//消息头
struct DataHeader
{
short dataLength; //数据长度 32767字节
short cmd;
};
通过定义包头和包体结构体,那么每次传输数据均需要两次据收发传输工作。
接下来进行对数据包的改进:
1、首先将名命令枚举扩充完整 消息头结构不变
enum CMD
{
CMD_LOGIN,
CMD_LOGIN_RESULT,
CMD_LOGINOUT,
CMD_LOGOUT_RESULT,
CMD_ERROR
};
//消息头
struct DataHeader
{
short dataLength; //数据长度 32767字节
short cmd;
};
2、改变数据包DataPackage结构体,使它继承于消息头。这么做的优点是,不需要在