一.包头结构体
//包头
struct PackageHeader
{
//包头大小(sizeof(PackageHeader))
unsigned int uTransPackageHdrSize;
//当前包头的大小(sizeof(PackageHeader)+当前数据包长度)
unsigned int uTransPackageSize;
//数据的总大小
unsigned int uDataSize;
//数据被分成包的个数
unsigned int uDataPackageNum;
//数据包当前的帧号
unsigned int uDataPackageCurrIndex;
//数据包在整个数据中的偏移
unsigned int uDataPackageOffset;
};
每包数据由包头和包体组成,包头用于标记每包数据的特征,包体是图片根据指定大小分出的每段数据,这里指定大小为const int UDP_MAX_SIZE=1200。
为何要分包可参考:TCP、UDP数据包大小的限制
二.分包与组包
1.分包
int dataLength=buffer.da