- #include "BStruct.h"
- #include <sys/socket.h>
- void send(SOCKET sock)
- {
- char buf[256];
- bsp::BStruct msg;
- msg.Bind(buf,256);//绑定buf,添加数据都会复制入buf末尾
- msg["msgid"] = (unsigned short)2001;//添加成员消息id,unsigned short类型
- msg["name"] = "huoyu";//添加成员name,字符串类型
- msg["age"] = (char)31;//添加成员age,char类型
- send(sock, msg.GetStream(), msg.GetSize(), 0);//发送消息
- }
- void recv(SOCKET sock)
- {
- //接收BStruct
- char buf[256];
- recv( sock, buf, 2, 0 );//接收BStruct长度
- short size = bsp::memtoi( buf, 2);//还原逆序保存的short
- recv( sock, &buf[2], size, 0 );//接收结构内存连在长度后面
- size += 2;//结构总大小=内容大小+结构长度2byte
- //解析BStruct
- bsp::BStruct msg;
- if ( !msg.Resolve(buf,size) ) return;//解析
- if ( !msg["msgid"].IsValid() ) return;//检查msgid是否存在,因为是范例,以下数据不再检查
- unsigned short msgid = msg["msgid"];//取得msgid
- string name = msg["name"];//取得name
- char age = msg["age"];//取得age
- }
- //该片段来自于http://www.codesnippet.cn/detail/151120137192.html
来源: http://www.codesnippet.cn/detail/151120137192.html