//定义包头
struct PacketHeader{
int uLen;//包长
int uOpCode;//协议号(项目实战中常规做法。)
};
//定义一个协议。传输 int 变量的值过去。
struct Protrol{
PacketHeader head;//协议头
int nBody; //协议身体,就是我们要传的值。
};
然后发送的时候这么发送:
Protrol a;
anBody = 1;
auLen = sizeof(Protrol );
SendBuffer((const char)&a,auLen);
接收端也是如此,根据Opcode的值,将收到的数据流强制类型转换成Protrol的指针就可以了。
比如收到的buff是:const char szBuff[1024]={0};
const Protrol pMsg = (const Protrol)szBuff;
这样就可以了。pMsg -> nBody ;就是你要的值。
现阶段 你学习到这个程度就够了,以后你就会发现一些问题,比如内存对齐 比如O2优化的问题。
尽管如此 这也是一个常用方法,或许你们教科书就是这么写的。这种方式非常简单。就这样。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)