C结构体:
包扩展性太差
包长度固定,大小限制,多了少了都不行,数据包太大
int不是跨平台通用要用int32_t
消息内容受pod类型限制
序列化方式:
可以定义非常复杂的结构体
限制了服务器客户端都用C++,都用同样的类库
数据包大小依然很大
json:
消息紧凑,极大地优化了包的大小,压缩率非常高
可视化好,可以直接打印包的内容
protobuf:
消息文档化容易理解,可以交给数值策划填写协议
包的大小与json相比又有了更多的优化,解析速度也提高了
入数据的时候尽量不要用protobuf,可视化太差;用json更好,支持的语言多
综上所述目前最好的设计消息数据包方式是服务器和客户端通信协议推荐用protobuf,服务器存入数据库时用json