//接收端
#pragma pack(1)
struct protocol_head_
{
int MainMsgID; // 主消息ID
int SubMsgID; // 子消息ID
int DataLen; // 数据长度,不包含头
int Reserve1; // 预留字段1
};
void Test::recvData()
{
LOG_DEBUGGING("启动接收数据线程");
int headLen = sizeof(protocol_head_);
char *pHeadData = new char[headLen];
char *pData = nullptr;
int npDataLen = 0;
while (m_bInited)
{
if (!m_bConnected)
{
Sleep(1);
continue;
}
int nRecvLen = 0;
memset(pHeadData, 0, headLen);
// 读取头数据,先收固定长度包头
while (1)
{
int len = ::recv(m_s, pHeadData + nRecvLen, headLen - nRecvLen, 0);
if (len <= 0)
{// 连接异常
m_bConnected = false;
break;