本文介绍: – 加载 pb 文件, 这个是从pbtxt 转换得到的– 转换命令: protoc.exe -operson.pb —cpp_out=cpp person.pbtxt— protoc.exe 下载地址: https://github.com/protocolbuffers/protobuf/releasesid = 123,– 用 protobuf 编码数据— 打印数据长度. 编码后的数据含不可见字符, toHex是方便显示end。
-- 加载 pb 文件, 这个是从pbtxt 转换得到的 -- 转换命令: protoc.exe -operson.pb --cpp_out=cpp person.pbtxt -- protoc.exe 下载地址: https://github.com/protocolbuffers/protobuf/releases protobuf.load(io.readFile("/luadb/person.pb")) local tb = { name = "wendal", id = 123, email = "abc@qq.com" } -- 用 protobuf 编码数据 local data = protobuf.encode("Person", tb) if data then -- 打印数据长度. 编码后的数据含不可见字符, toHex是方便显示 log.info("protobuf", #data, (data:toHex())) end
protobuf.load(pbdata)
传入值类型 |
解释 |
---|---|
返回值
解释 |
|
---|---|
bool |
成功与否 |
读取了多长, 调试用 |
例子
-- 注意, 同一个文件只需要加载一次, 除非调用过protobuf.clear() protobuf.load(io.readFile("/luadb/person.pb"))
protobuf.clear()
无
返回值
解释 |
|
---|---|
无返回值, 总是成功 |
例子
-- 清除所有已加载的定义数据 protobuf.clear()
protobuf.encode(tpname, data)
编码protobuffs数据包
传入值类型 |
解释 |
---|---|
返回值
解释 |
|
---|---|
例子
-- 数据编码 local tb = { name = "wendal" } local pbdata = protobuf.encode("Person", tb) if pbdata then -- 注意, 编码后的数据通常带不可见字符 log.info("protobuf", #pbdata, pbdata:toHex()) end
protobuf.decode(tpname, data)
传入值类型 |
解释 |
---|---|
待编码数据 |
返回值
返回值类型 |
解释 |
---|---|
解码后的数据 |
例子
-- 数据编码 local tb = { name = "wendal" } local pbdata = protobuf.encode("Person", tb) if pbdata then -- 注意, 编码后的数据通常带不可见字符 log.info("protobuf", #pbdata, pbdata:toHex()) end
原文地址:https://blog.csdn.net/l531798151/article/details/134619374
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_2393.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。