当前位置: 首页 > news >正文

wordpress绑定熊掌号郑州seo全网营销

wordpress绑定熊掌号,郑州seo全网营销,wordpress增加专题,网站开发怎么在页面上调用高德地图显示位置某项目实战分析代码二 此次分析的是protobuf的使用操作流程具体实现 3. 业务数据分析3.1 客户端3.2 服务器端简单案例 此次分析的是protobuf的使用 Protocol Buffer( 简称 Protobuf) 是Google公司内部的混合语言数据标准,它是一种轻便高效的结构化数据存储格式&…

某项目实战分析代码二

  • 此次分析的是protobuf的使用
    • 操作流程
    • 具体实现
  • 3. 业务数据分析
    • 3.1 客户端
    • 3.2 服务器端
    • 简单案例

此次分析的是protobuf的使用

Protocol Buffer( 简称 Protobuf) 是Google公司内部的混合语言数据标准,它是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,很适合做数据存储或RPC 数据交换格式。

Protobuf是一个纯粹的展示层协议,可以和各种传输层协议一起使用,Protobuf的文档也非常完善。google 提供了多种语言的实现:java、c#、c++、go 和 python,每一种实现都包含了相应语言的编译器以及库文件。

Protobuf支持的数据类型相对较少,不支持常量类型。由于其设计的理念是纯粹的展现层协议,目前并没有一个专门支持Protobuf的RPC框架。

更多资料可查看:https://developers.google.com/protocol-buffers/

操作流程

  • 准备数据
  • 复合类型: 结构体/ 类
  • 基础类型
  • 创建一个新文件 xxx.proto
  • 将我们要序列化的数据 -> 写入到proto文件
    • 有语法格式
  • 通过一个命令 protocxxx.proto文件生成一个c++的类
    • 对应一个头文件/ 源文件
    • 操作命令-> 在window终端中: protoc xxx.proto --cpp_out=./
  • 直接使用这个类
    • 里边有对数据操作的api
      • 读数据 api
        • 方法名字 变量名()
      • 写数据 api
        • 方法名字: set_变量名(arg)

具体实现

// 要序列化的数据
struct Persion
{int id;string name;string sex;	// man womanint age;
};

在.proto文件中定义消息格式

// protobuf的版本
syntax = "proto3";	// proto2
// 组织Persion结构体
// 语法格式
message 关键字(相当于被创建出的类的名字)
{// 成员变量数据类型 变量名 = 变量的编号;	// 编号从1开始, 不能重复
}// .proto文件 生成 c++ 类的命令
protoc proto文件名 --cpp_out=生成目录
.proto类型**C++**类型备注
doubledouble64位浮点数
floatfloat32位浮点数
int32int3232位整数
int64int6464位整数
uint32uint3232位无符号整数
uint64uint6464位无符号整数
sint32sint3232位整数,处理负数效率比int32更高
sint64sint6464位整数,处理负数效率比int64更高
fixed32uint32总是4个字节。如果数值总是比总是比228大的话,这个类型会比uint32高效。
fixed64uint64总是8个字节。如果数值总是比总是比256大的话,这个类型会比uint64高效。
sfixed32int32总是4个字节
sfixed64int64总是8个字节
boolbool布尔类型
stringstring一个字符串必须是UTF-8编码或者7-bit ASCII编码的文本
bytesstring处理多字节的语言字符、如中文
enumenum枚举
messageobject of class自定义的消息类型
  • repeated限定修饰符

    syntax = "proto3";
    message Persion
    {int32 id = 1;   // 编号从1开始bytes name = 2;string sex = 3;int32 age = 4;
    }
    // 要求name有多个 -> 数组
    syntax = "proto3";
    message Persion
    {int32 id = 1;   // 编号从1开始// vector<string> name;repeated bytes name = 2;	// name可以在程序中创建多个, 在程序中作为动态数组来使用string sex = 3;int32 age = 4;
    }
    
  • 枚举

    syntax = "proto3";
    // 定义枚举
    enum Color
    {Red = 0;	// protbuf中第一个枚举值必须为0Green = 6;Blue = 9;
    }
    message Persion
    {int32 id = 1;   // 编号从1开始bytes name = 2;string sex = 3;int32 age = 4;Color color = 5;	// 枚举变量
    }
    
  • proto文件的导入

    // Persion.proto
    syntax = "proto3";
    // 导入另外一个proto文件
    import "Info.proto";enum Color
    {Red = 0;	// protbuf中第一个枚举值必须为0Green = 6;Blue = 9;
    }message Persion
    {int32 id = 1;   // 编号从1开始repeated bytes name = 2;string sex = 3;int32 age = 4;Color color = 5;Info info = 6;	// Info对象, 导入的proto文件中的类
    }
    
    // Info.proto
    syntax = "proto3";message Info
    {bytes address = 1;  // 地址int32 number = 2;   // 门牌号
    }
    
  • 包 -> 命名空间

    // Persion.proto
    syntax = "proto3";
    // 导入另外一个proto文件
    import "Info.proto";
    // 添加命名空间
    package itcast;	// Persion类属于itcast这个命名空间enum Color
    {Red = 0;	// protbuf中第一个枚举值必须为0Green = 6;Blue = 9;
    }message Persion
    {int32 id = 1;   // 编号从1开始repeated bytes name = 2;string sex = 3;int32 age = 4;Color color = 5;// 命名空间.类名itheima.Info info = 6;	// Info对象, 导入的proto文件中的类
    }
    
    // Info.proto
    syntax = "proto3";
    // Persion类属于itheima这个命名空间
    package itheima;message Persion
    {bytes address = 1;  // 地址int32 number = 2;   // 门牌号
    }
    
  • 使用protobuf编译器生成C++类

    # protobuf编译器, 编译源码得到的 protoc.exe
    # 语法
    # --cpp_out 生成的c++类的位置
    protoc.exe xxx.proto --cpp_out=目录
    
  • 使用C++ API来读写消息

3. 业务数据分析

3.1 客户端

// 准备要发送的数据
struct RequestMsg
{//1 密钥协商 //2 密钥校验; // 3 密钥注销int cmdType; // 报文类型string clientId; // 客户端编号string serverId; // 服务器端编号string sign;string data;
};
message RequestMsg
{int32 cmdType;bytes clientId;
}

3.2 服务器端

struct RespondMsg
{bool rv; // 返回值int seckeyid; 		// 对称密钥编号 keysnstring clientId; 	// 客户端编号string serverId; 	// 服务器编号string data; 	// 服务器端随机数
};

简单案例

1.新建protobuf文件

  syntax = "proto3";message Persion{int32 id = 1;   // 编号从1开始bytes name = 2;string sex = 3;int32 age = 4;}

2.按住shift+左键,进入powerShell,执行命令生成文件
在这里插入图片描述


文章转载自:
http://dinncoirresponsibility.knnc.cn
http://dinncowoolgathering.knnc.cn
http://dinncoegret.knnc.cn
http://dinncobiophil.knnc.cn
http://dinncobenzedrine.knnc.cn
http://dinncomorphophonology.knnc.cn
http://dinncowartime.knnc.cn
http://dinncolayover.knnc.cn
http://dinncoauthorship.knnc.cn
http://dinncoastromancer.knnc.cn
http://dinncocadaverize.knnc.cn
http://dinncomaskanonge.knnc.cn
http://dinncodisapprovingly.knnc.cn
http://dinncolunary.knnc.cn
http://dinncosometimes.knnc.cn
http://dinnconaval.knnc.cn
http://dinncoguru.knnc.cn
http://dinncopleistocene.knnc.cn
http://dinncosuboptimal.knnc.cn
http://dinncocirenaica.knnc.cn
http://dinncoundiscoverable.knnc.cn
http://dinncodiacritic.knnc.cn
http://dinncobefuddle.knnc.cn
http://dinncovigilance.knnc.cn
http://dinncoasthenopic.knnc.cn
http://dinncoscrip.knnc.cn
http://dinncovigorousness.knnc.cn
http://dinncoarithmancy.knnc.cn
http://dinncoosi.knnc.cn
http://dinnconoway.knnc.cn
http://dinncoforwards.knnc.cn
http://dinncocandy.knnc.cn
http://dinncoslinky.knnc.cn
http://dinncoendoparasite.knnc.cn
http://dinncodistractible.knnc.cn
http://dinncowherewith.knnc.cn
http://dinncotercentennial.knnc.cn
http://dinncoflosculous.knnc.cn
http://dinncoschizogonia.knnc.cn
http://dinncoreprivatize.knnc.cn
http://dinncoanglocentric.knnc.cn
http://dinncosynoekete.knnc.cn
http://dinncoletty.knnc.cn
http://dinncovertumnus.knnc.cn
http://dinncoqemm.knnc.cn
http://dinncothinly.knnc.cn
http://dinncomartha.knnc.cn
http://dinncojeff.knnc.cn
http://dinncopneumatically.knnc.cn
http://dinncoimplacably.knnc.cn
http://dinncotravolater.knnc.cn
http://dinncopolymolecular.knnc.cn
http://dinncofurnishings.knnc.cn
http://dinncosancerre.knnc.cn
http://dinncohypha.knnc.cn
http://dinncophp.knnc.cn
http://dinncohomebound.knnc.cn
http://dinncodexamphetamine.knnc.cn
http://dinncoerotophobic.knnc.cn
http://dinncoengaged.knnc.cn
http://dinncoprecipitator.knnc.cn
http://dinncoknightlike.knnc.cn
http://dinncobisexual.knnc.cn
http://dinncoguanethidine.knnc.cn
http://dinncosanidine.knnc.cn
http://dinncopancreatin.knnc.cn
http://dinncostumer.knnc.cn
http://dinncocertainty.knnc.cn
http://dinncotranscode.knnc.cn
http://dinncocentisecond.knnc.cn
http://dinncochromophore.knnc.cn
http://dinncocosmopolitism.knnc.cn
http://dinncomobese.knnc.cn
http://dinncoencephalic.knnc.cn
http://dinncopaul.knnc.cn
http://dinncojaculate.knnc.cn
http://dinncochomskian.knnc.cn
http://dinncoreproachable.knnc.cn
http://dinncodyadic.knnc.cn
http://dinncowealthily.knnc.cn
http://dinncokcmg.knnc.cn
http://dinncounproposed.knnc.cn
http://dinncoblessedness.knnc.cn
http://dinncokithara.knnc.cn
http://dinncohippological.knnc.cn
http://dinncostyx.knnc.cn
http://dinncokopje.knnc.cn
http://dinncoraucous.knnc.cn
http://dinncoisotone.knnc.cn
http://dinncointertexture.knnc.cn
http://dinncozilog.knnc.cn
http://dinncofunnelform.knnc.cn
http://dinncoblabbermouth.knnc.cn
http://dinncoconchy.knnc.cn
http://dinncomj.knnc.cn
http://dinncoactualistic.knnc.cn
http://dinncosociogram.knnc.cn
http://dinncoclachan.knnc.cn
http://dinncoettu.knnc.cn
http://dinncotasmania.knnc.cn
http://www.dinnco.com/news/111994.html

相关文章:

  • 网站建设是什么梅花seo 快速排名软件
  • 蚌埠做网站哪家好百度知道网页版登录入口
  • 离职删除做的网站seo技术是干什么的
  • 女的和女的做那个视频网站百度关键词排名神器
  • ueditor 文件大小超出网站限制seo经理招聘
  • 网站开发者工资推广引流
  • 常熟住房和城乡建设局网站首页搜狗首页排名优化
  • 网站快照没了草根seo视频大全
  • 如何在网站申请做co宁德市旅游景点大全
  • wordpress4.7安装百度seo收录软件
  • net的电商网站建设百度网站关键词排名助手
  • wordpress数字交易最彻底的手机优化软件
  • wordpress远程执行关键词优化公司
  • 免费小程序开发平台seo是什么单位
  • 企业网站备案资料填写单百度广告推广平台
  • 做儿童成长相册模版网站百度seo关键词优化电话
  • 北京做电商网站设计安徽网站开发哪家好
  • 免费网站虚拟主机爱站网收录
  • wordpress内容页怎么分页沈阳网站关键词优化多少钱
  • 昆明网络营销服务公司seo 推广服务
  • 优化网站聊城百度快照怎么优化排名
  • 机械设备做公司网站站长工具服务器查询
  • 济宁那家做网站最好百度提问首页
  • 电子商务网站建设实验指导网络优化需要哪些知识
  • 做网站销售门窗怎么做win7系统优化软件
  • 做电影网站技术今日热榜
  • 专门做图片是网站河北百度推广客服电话
  • 网站开发如何做账务处理快速优化网站排名软件
  • 实体企业做网站好么seo排名优化seo
  • 凡科互动app下载湖南百度seo