zoukankan      html  css  js  c++  java
  • protobuf

    1. 概述

      protobuf(Protocol Buffers )是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化。它很适合做数据存储或 RPC 数据交换格式。可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式。相比于Json,Protobuf有更高的转化效率,时间效率和空间效率都是JSON的3-5倍。

    由于谷歌官方网站已经不再提供源代码下载,可以去以下地址下载。 Protobuf源代码下载地址:https://github.com/mgravell/protobuf-net 

    特点: 
      

      • 结构数据串行化,灵活、高效、自动。
      • 相对XML,更小、更快、更简单。
      • 自定义数据结构。
      • 动态更新数据结构。

    2、protobuf有什么?

            Protobuf 提供了C++、JavaPython语言的支持,提供了windows(proto.exe)和Linux平台动态编译生成proto文件对应的源文件。proto文件定义了协议数据中的实体结构(message ,field)

    关键字message: 代表了实体结构,由多个消息字段(field)组成。

    消息字段(field): 包括数据类型、字段名、字段规则、字段唯一标识、默认值

    数据类型:常见的原子类型都支持(在FieldDescriptor::kTypeToName中有定义)

    字段规则:(在FieldDescriptor::kLabelToName中定义)

            required:必须初始化字段,如果没有赋值,在数据序列化时会抛出异常

            optional:可选字段,可以不必初始化。

            repeated:数据可以重复(相当于java 中的Array或List)

            字段唯一标识:序列化和反序列化将会使用到。

    默认值:在定义消息字段时可以给出默认值。

    2、利用protoGen将proto文件转换成C#

    (1)将proto文件放在protoGen文件夹根目录下面。

    (2)打开命令提示符,进入protoGen文件夹根目录。

    (3)执行命令protogen.exe -i:xxx.proto -o:xxx.cs

    有import类型的 Proto文件的生成方法:

    import "game_character.proto";

    有import类型的 Proto文件,将基础文件,和import文件同时放在 根目录下, 命令行下运行protogen.exe

    cd /d E:ProtoGen

    protogen.exe -i:Name.proto -o:E:ProtoGenName.cs

    //新方法
    需要导入的文件必须放在ProtoGen 根目录下面,不要放在proto里, 可以直接批处理

  • 相关阅读:
    C#调用Exe文件的方法及如何判断程序调用的exe已结束(转)
    C# Color (转)
    【666】语义分割减少过拟合
    【665】构建多损失函数
    libc timer
    分支管理
    MULLS:论文阅读
    微信支付宝整合支付开发中的常见问题
    IIS8中安装和使用URL重写工具(URL Rewrite)的方法
    通过Java 技术手段,检查你自己是不是被绿了...
  • 原文地址:https://www.cnblogs.com/AaronBlogs/p/6815745.html
Copyright © 2011-2022 走看看