Files
mir_server/sdk/commonLib/include/NetworkDataHandler.h
aixianling 5c9f1dae4a init
2025-01-09 17:45:40 +08:00

63 lines
2.5 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 _DATA_NETWORD_DATA_HANDLE_H_
#define _DATA_NETWORD_DATA_HANDLE_H_
#include "CommonDef.h"
#include "Define.h"
//网络数据处理器
class CNetworkDataHandler
{
public:
/*
* 构造函数,初始化一些参数
* 一个数据包的头由tab,len,headCheckSum,dataCheckSum,data组成的
* param bNeedEncrypt: 是否需要加密处理如果不需要的话那么将不进行加密和checksum的校验
*/
CNetworkDataHandler(bool bNeedEncrypt=false);
/*
* 解包数据
* param pInBuff 输入的数据包
* param nInSize 输入的数据包的长度
* param pOutBuff 输出的数据包指针
* param nOutSize 输出的数据包的长度
* param nInProcessSize 输入的数据包处理了的长度如果大于0那么前面的这个字节的数据包可以丢弃了
* param nOutProcessSize 处理好的数据长度处理好的数据放在pOutBuff里
* param bWithHeader 是否还需要网络数据头如果不需要那么将把8个字节的网络字节头丢弃pOutBuff中的数据将是无头的逻辑数据
* param pEncrypt 加密器的指针
* ret 如果进行了数据处理返回true否则返回false。数据处理包括发现前面有无效数字拷贝了一个完整的数据包丢弃一些字节等
*/
bool DataUnpack(char *pInBuff,SIZE_T nInSize, char *pOutBuff, SIZE_T nOutSize,SIZE_T & nInProcessSize,SIZE_T & nOutProcessSize,bool bWithHeader=false,Encrypt * pEncrypt=NULL);
/*
* 逻辑数据包组装成网络数据包
* param pInBuff 输入的数据包
* param nInSize 输入的数据包的长度
* param pOutBuff 输出的数据包指针
* param nOutSize 输出的数据包的长度
* param pEncrypt 加密器的指针
* ret 返回组装包以后pOutBuff的数据长度如果没有组装成功返回0
*/
INT_PTR DataPack(char *pInBuff,SIZE_T nInSize, char *pOutBuff, SIZE_T nOutSize,Encrypt * pEncrypt=NULL);
/*
* Comments:填充加密头
* Param char * pInBuff: 数据部分的指针
* Param SIZE_T nInSize: 数据部分的长度
* Param PDATAHEADER pHeader: 头的指针
* Param Encrypt * pEncrypt: 加密器的指针
* @Return void:
*/
static void FillInHeader(char *pInBuff,SIZE_T nInSize,PDATAHEADER pHeader,Encrypt * pEncrypt);
//设置tag的值
void SetTagValue(WORD nValue){m_nTag=nValue;}
void SetNeedEncrypt(bool flag){m_bNeedEncrypt = flag;}
private:
bool m_bNeedEncrypt; //是否需要加密处理如果不需要的话那么将不进行加密和checksum的校验
WORD m_nTag; //Tag的值
};
#endif