Protocol buffers 是一种语言无关、平台无关、可扩展的序列化结构数据的方法,它可用于(数据)通信协议、数据存储等。可类比 XML,但是比 XML 更小(3 ~ 10倍)、更快(20 ~ 100倍)、更为简单。可以定义数据的结构,使用IDL(接口描述语言)生成的各种语言源代码在数据流中进行编写和读取结构数据。
1.创建msg.proto文件,使用protobuf语法描述数据格式
vim msg.proto
syntax = "proto3";
package Data;
message Vector
{
int32 vx = 1;
int32 vy = 2;
int32 vz = 3;
}
message Point
{
float px = 1;
float py = 2;
float pz = 3;
}
enum MsgType
{
Vec = 0;
Pnt = 1;
}
message FinalMsg
{
string username = 1;
string password = 2;
MsgType msgType = 3;
Vector vector = 4;
Point point = 5;
}
2.生成c++语言的代码(--cpp_out表示生成c++代码,可通过其它选项生成其他语言代码)
protoc msg.proto --cpp_out=./
3.服务端代码
#include <