
Protobuf
文章平均质量分 79
快速上手Protobuf
我要满血复活
厦门大学计算机科学与技术学生,简单记录学习路程
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Protobuf 的快速上手(一)
序列化概念序列化概念序列化:把对象转换为字节序列的过程称为对象的序列化。反序列化:把字节序列恢复为对象的过程称为对象的反序列化。什么情况下需要序列化存储数据:当你想把的内存中的对象状态保存到⼀个⽂件中或者存到数据库中时。⽹络传输:⽹络直接传输数据,但是⽆法直接传输对象,所以要在传输前序列化,传输完成后反序列化成对象。例如我们之前学习过 socket 编程中发送与接收数据。我们可以通过等方式实现序列化,接下来,我们来介绍protobuf。原创 2025-03-29 12:03:29 · 1065 阅读 · 0 评论 -
Protobuf 的快速使用(二)
创建通讯录 2.0 版本这个部分会对通讯录进⾏多次升级,使⽤ 2.x 表⽰升级的版本,最终将会升级如下内容:不再打印联系⼈的序列化结果,⽽是将通讯录序列化后并写⼊⽂件中。从⽂件中将通讯录解析出来,并进⾏打印。新增联系⼈属性,共包括:姓名、年龄、性别、电话信息、地址、其他联系⽅式、备注。字段规则消息的字段可以⽤下⾯⼏种规则来修饰:singular :消息中可以包含该字段零次或⼀次(不超过⼀次)。proto3 语法中,字段默认使⽤该规则。原创 2025-03-29 13:47:48 · 448 阅读 · 0 评论 -
Protobuf 的快速使用(三)
升级通讯录 2.1 版本在(三)中,我们将新增联系⼈属性,共包括:姓名、年龄、性别、电话信息、地址、其他联系⽅式、备注。enum 类型语法⽀持我们定义枚举类型并使⽤。在.proto⽂件中枚举类型的书写规范为:枚举类型名称:使⽤驼峰命名法,⾸字⺟⼤写。例如: MyEnum常量值名称:全⼤写字⺟,多个字⺟之间⽤ _连接。例如:要注意枚举类型的定义有以下⼏种规则:0 值常量必须存在,且要作为第⼀个元素。这是为了与 proto2 的语义兼容:第⼀个元素作为默认值,且值为 0。原创 2025-03-31 15:26:44 · 1008 阅读 · 0 评论 -
Protobuf 的快速使用(四)
搭建 Httplib 库Protobuf 还常⽤于通讯协议、服务端数据交换场景。那么在这个⽰例中,我们将实现⼀个⽹络版本的通讯录,模拟实现客⼾端与服务端的交互,通过 Protobuf 来实现各端之间的协议序列化。需求如下:客⼾端可以选择对通讯录进⾏以下操作:新增⼀个联系⼈删除⼀个联系⼈查询通讯录列表查询⼀个联系⼈的详细信息为了将代码简化,我们只具体实现新增联系人的功能,服务端则相应提供增删查能⼒,并需要持久化通讯录(为了将代码简化,原创 2025-04-05 11:37:24 · 323 阅读 · 0 评论