C++ 使用 protobuf 序列化反序列化方法通信

本文介绍了使用Protocol Buffers在C++中进行序列化和反序列化的方法,通过msg.proto文件定义数据格式,生成C++代码,并展示了服务端和客户端的实现过程,以实现高效的数据通信。
摘要由CSDN通过智能技术生成

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 <
  • 0
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值