一、弹性结构体

二、通讯协议设计
设计数据协议单元的数据结构
#include<stdlib.h>
#include<unistd.h>
#include<stdio.h>
#include<string.h>
typedef unsigned int uint;
struct PDU
{
uint uiPDULen; //总的协议数据单元大小
uint uiMsgType; //消息类型
char caData[64]; //消息数据
uint uiMsgLen; //实际消息的长度
int caMsg[]; //实际消息
};
PDU* mkPDU(uint uiMsgLen); //创建协议数据单元
通过动态申请实际消息的大小,通过访问结构体最后的数组的地址来访问消息。
#include"protocol.h"
PDU *mkPDU(uint uiMsgLen)
{
uint uiPDULen = sizeof(PDU) + uiMsgLen;
PDU* pdu = (PDU*)malloc(uiPDULen);
if(NULL == pdu)
{
exit(EXIT_FAILURE);
}
memset(pdu,0,uiPDULen); // 将pdu所指向的内存空间清0
pdu->uiPDULen = uiPDULen;
pdu->uiMsgLen = uiMsgLen;
return pdu;
}
</

文章讲述了在C++中设计弹性结构体PDU,如何处理包含字符串的通讯协议单元,并解决中文乱码问题,以及客户端与服务器之间的数据收发测试过程。
最低0.47元/天 解锁文章
3165

被折叠的 条评论
为什么被折叠?



