protoBuffer的下载以及使用①

2023-11-11


  • 这里写了一个简单的示例检测proto是否可以使用。

    使用protoBuf需要提供以下:
    ①protobuf-java-2.6.1-sources.jar
    ②protoc-2.6.1-win32.zip
    这两个文件我已经添加了附件,当然也可去谷歌官网下载,不过需要fq,下面是两个文件的直接下载路径,需要注意jar和zip的版本一定要相同。
    jarUrl:http://grepcode.com/snapshot/repo1.maven.org/maven2/com.google.protobuf/protobuf-java/2.4.1
    zipUrl:https://developers.google.com/protocol-buffers/docs/downloads





获取后,需要创建一个proto文件,例如


option java_package = "protoBuf";  
option java_outer_classname = "protoBuffer";
  
message msgInfo  {  
  required int32 ID = 1;  
  required int64 GoodID = 2;         
  required string Url = 3;  
  required string Guid = 4;  
  required string Type = 5;  
  required int32 Order = 6;  
}

将这个文件放入zip的压缩文件中,和proto.exe同目录

然后在cmd进入当前目录,执行 protoc.exe --java_out=./ msg.proto(文件名)

会在同目录中生成一个java文件,将这个java文件引入eclipse中就可以使用了


下面是检测代码

package protoBufUtils;

import protoBuf.protoBuffer;

public class protoSerializeUtils {
	
	//消息序列化
	public static byte[] serialize(){
		protoBuffer.msgInfo.Builder builder=protoBuffer.msgInfo.newBuilder();  
	    builder.setGoodID(10); //消息ID 
	    builder.setGuid("11111-22222-33333-123");  //唯一标示符号
	    builder.setOrder(2);  //命令
	    builder.setType("ITEM");  //设置消息类型
	    builder.setID(20);  //设置用户ID
	    builder.setUrl("http://one.jpg");  //设置URL
	    protoBuffer.msgInfo info=builder.build();  //生成消息
	    byte[] result=info.toByteArray();
	    System.out.println(result);
	    return result;
	}
	
	//消息反序列化
	public static void versaSerialize(byte[] result){
		try{  
			protoBuffer.msgInfo msg = protoBuffer.msgInfo.parseFrom(result);  
	        System.out.println(msg);  
	    }  
	    catch(Exception ex){  
	        System.out.println(ex.getMessage());  
	    }  
	}
	
	
	public static void main(String[] args) {
		protoSerializeUtils.versaSerialize(protoSerializeUtils.serialize());;
	}
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

protoBuffer的下载以及使用① 的相关文章

  • android wifimanager实时scan,天博体育和BOB为什么不封 -官网

    内容管理 bin bash 挂载yum仓库 read p 请输入你yum仓库的挂载点 direcho 正在挂载光盘 mount grep q dev sr0 umount dev sr0 d dir mkdir dirmount dev s
  • 怎么把桌面添加到计算机的收藏夹,电脑浏览器怎么把书签添加到桌面

    把个人喜欢的网页保存到桌面 下次直接进入网页就十分便捷了 以下就是网页保存到桌面的几种方法 方法一 1 打开360浏览器 选择文件选项 2 保存网页桌面快捷方式 3 等待生成桌面快捷方式 4 生成了桌面快捷方式 直接打开就可以进入经常使用的
  • IDEA在使用maven命令时,控制台出现中文乱码的解决方式

    今天在进行maven打包的时候 由于项目路径有中文名称 然后控制台出现了中文乱码 如图所示 这种情况下 本狗试过很多种方法 比如在setting gt encoding中设置字符集为UTF 8等等方法 但是都没有用 后来经过大量百度 找到了
  • Secret File ctf web php伪协议

    Secret File php伪协议 打开网页并没有太多提示 查看一下网页源码 可以看到一个新的页面 Archive room php 尝试访问一下 这是就跳出了这样一个页面 点击SECRET 出现如下页面 比较之前的网页源码并没有什么变化
  • 成功解决:RuntimeError: DataLoader worker (pid(s) XXX) exited unexpectedly

    跑着跑着出现Bug RuntimeError DataLoader worker pid s x x x x exited unexpectedly 加上 if name main
  • 【数模】基于PageRank算法的学术论文重要性排序问题(matlab实现)

    基于PageRank算法的学术论文排序问题 matlab实现 问题描述 六篇学术论文的引用关系如图 A 指向 B 表示 A 引用 B 试排出它们重要性的顺序 问题分析 就是给节点来个重要性排序 PageRank简介 PageRank 又称网
  • oracle表空间迁移transport_tablespace的使用

    问题描述 如果某个表空间有多个用户 那么我们在迁移的时候如果按用户导出导入的话 那将是一个麻烦费事的活 这个时候我们可以通过transport tablespace参数进行表空间迁移 达到一次性迁移整个表空间的目的 下面通过一个实验来讲解整
  • layui table 跨页、翻页记忆选择

    示例 table class layui table table layui 需要初始化的 form layui form layfilter layui layfilter table render
  • linux du命令

    百度百科查到 du show disk usage 查看磁盘使用情况 个人用的比较多的命令是 du h max depth 1 查看这个目录下的文件目录大小 du ah max depth 1查看这个目录下的文件目录包括文件的大小 具体的命
  • 项目经验分享:基于昇思MindSpore实现手写汉字识别

    项目信息Program Info 项目要求 基于MindSpore的实现在线手写汉字识别 主要包括手写汉字检测和手写汉字识别 能较准确的对标准字体的手写文字进行识别 识别后通过人工干预对文本进行适当修正 需要有一定的创新特性 代码达到合入社
  • Android开发学习【Button控件】

    Android开发学习 Day02 Button 与TextView相比 Button增加了两个新属性 书写一个点击显示当前时间的按钮 获取当前时间的java类 xml主界面 MainActivity类 点击事件和长按事件 使用setOnC
  • C++中的头文件.h 和 源文件.cpp 的关系

    在VS中 C 项目 我创建了一个类 会自动创建头文件和源文件 这两个文件有什么关系 如何快速切换 在头文件 h文件中声明的类方法 如何快速在源文件中进行具体实现 在 Visual Studio 中创建 C 项目时 当你添加一个新的类 它会自
  • 游戏外挂内存数据读取

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 源地址 http hi baidu com probill blog item 1d07d11efbd641f01ad576f3 html网络游戏 每一个数据比如你的血值
  • vue 父子间通信 总结

    vue 父子间通信 总结 组件之间通信 父组件向子组件传值 父传子 props 父组件 子组件 实现的效果图 父组件输入密码 子组件接收数据 子组件向父组件传值 子传父 emit eventName args 子组件 父组件 兄弟组件之间的
  • Qt学习笔记(五)【多窗口交互方法】

    在开发应用程序的过程中 难免会遇到多个进行交互的问题 Qt中多窗口交互有多种方式 方法一 利用主窗口指针的方式进行交互 在主窗口中创建子窗口时 会将this指针传递进去 则子窗口就会将主窗口作为父窗口 因此在子窗口中可以通过如下代码获取到主
  • 青海省招标投标投诉处理办法

    http baike baidu com view 12098489 htm
  • 图像均值、标准差、变异系数的意义

    目录 均值图像如何算 方差图像如何计算 变异系数是什么 极差 最大值 最小值 方差 数列中每个元素与均值之差的平方和 标准差 方差的开平方根 变异系数 正态分布 标准差 平均值 数字图像处理的配套视频教程 1 冈萨雷斯 数字图像处理 开始安
  • jquery vue 替代_关于jQuery和Vue两者技术架构的比较分析报告

    关于jQuery和Vue两者技术架构的比较分析报告 jQuery jQuery已经过时了 略做点补充 Zepto也是过时货了 还有Underscore Lodash等 也是过时了 但是过时不代表你就一定不可以再用 或者要从现有项目中清除抛弃
  • Vue路由守卫

    路由守卫的作用 对路由进行权限控制 分类 全局守卫 独享守卫 组件内守卫 1 全局守卫 全局前置路由守卫 初始化和每次路由切换时调用 router beforeEach to from next gt console log 前置路由守卫

随机推荐

  • vue在父组件如何获取子组件的ref

    步骤 1 给父组件定义一个ref 2 子组件也是一样的ref 父组件 div div
  • 【规划】RRT Planer 以及 python实现

    本文转载自头条号作者半杯茶的小酒杯 百度的研发工程师 文章多是自动驾驶相关 推介给大家 RRT Planer 快速搜索随机树 RRT Rapidly ExploringRandom Trees 是一种常见的用于机器人路径规划的方法 他的原始
  • Qt中的JSON操作

    JSON JavaScript Object Notation js对象标记 是一种轻量级的数据交换格式 它基于ECMAScript的一个子集 使用完全独立于编程语言的文本格式来存储和表示数据 简洁和清晰的的层次结构使得JSON成为理想的数
  • ScaleTable matlab,【转】用matlab跑一下下面的程序,带上耳机,你会有发现一些惊喜噢...

    Cripple Pachebel s Canon on Matlab Have fun fs 44100 sample rate dt 1 fs T16 0 125 t16 0 dt T16 temp k size t16 t4 linsp
  • mysql导出binLog日志

    安装 https blog csdn net weixin 43423484 article details 124408565 设置 mysqld 设置3306端口 port 3306 设置mysql的安装目录 这里输入你安装的文件路径
  • 缺少项目经验 & 找工作处处碰壁?这 240 个实战项目请打包带走!

    全部面试找工作时 最常被问到的问题就是 有什么项目经验 对于毕业生来说 我们刚走出校园 还没有工作和项目经验 只能拿学校里练习做的 小游戏 或者 命令行程序 出来 但是 这些项目并不符合现代编程的需要 现代编程需要 前后端分工合作 网络接入
  • 云直播SDK核心功能对比|腾讯云、阿里云、声网、即构等SDK厂商对比

    直播业务概述 大家所熟知的直播平台虎牙 斗鱼 快手 抖音 B站 直播功能看似普遍 但从零到一开发却不简单 直播中运用到的技术难点非常之多 音频视频处理 编解码 前后处理 直播分发 即时通讯等技术 学好任何一项都需要比较高的成本 将它们融合到
  • QT从入门到实战x篇_14_消息对话框(QMessageBox、静态成员函数的访问、修改按键、利用函数返回值为枚举判断按键类型,实现指定动作)

    接上篇 QT从入门到实战x篇 xx 模态和非模态对话框创建 对话框建立在栈上运行完即释放 堆上不删除不可释放 对象在栈上及堆上的生命周期问题需弄懂 在帮助文档中 搜索QMessageBox 会看到其比较重要的几个函数如下 对应的为静态成员函
  • npm start 作用

    在配置phonecat项目时需要运行npm start在本地配置一个服务器环境 npm start首先会安装一系列的必要程序 这些程序依赖package json中的内容 package json中的内容详解如下 依赖包介绍 在克隆项目之后
  • 【Android开发】toast提示

    什么是Toast 在屏幕下方浮现出一个窗口 显示一段时间后又消失 这个可视化组件叫做 Toast 它主要用于提示用户某种事件发生了 如何在添加Toast 最关键的是在事件处理逻辑中加两条语句 定义一个Toast 用makeText 设置要浮
  • 饥荒暴食模式服务器无响应,饥荒暴食模式无银盘图文攻略介绍

    饥荒暴食模式无银盘图文攻略介绍 2018 06 26 17 03 50来源 游戏下载编辑 苦力趴评论 0 饥荒 近日推出了新的游戏模式暴食模式 玩家可以选择单人通关亦或是组队一同任务 下面就为大家带来饥荒暴食模式无银盘图文攻略介绍 基本思路
  • 数据库之数据库设计和E-R模型

    本篇文章介绍数据库设计和E R模型 内容基本是笔者在学习 数据库系统概念 时摘抄总结而来 仅作笔记 实体 联系模型 实体 联系 entity relationship E R 数据模型的提出旨在方便数据库的设计 它是通过允许定义代表数据库全
  • related work

    Traditional approaches e g genetic algorithm GA 2 and ant colony optimization ACO 3 can obtain optimal mapping results b
  • mysql查询练习(三)

    31 查询成绩比该课程平均成绩低的同学的成绩表 mysql gt select from score a where degree lt select avg degree from score b where a cno b cno sn
  • 查看linux系统版本命令

    一 查看内核版本命令 1 root SOR SYS cat proc version Linux version 2 6 18 238 el5 mockbuild x86 012 build bos redhat com gcc versi
  • Robot Framework完整流程学习--分层思想

    一 环境搭建 网上有很多的教程 这里就不多讲了 二 RIDE的界面认识 这里只介绍几个重要常用的功能 其他相信自己都能理解 1 Search Keywords F5 搜索关键字 2 Content Assistance 内容助手 3 Vie
  • java 多线程 总结一

    首先讲一下进程和线程的区别 进程 每个进程都有独立的代码和数据空间 进程上下文 进程间的切换会有较大的开销 一个进程包含1 n个线程 线程 同一类线程共享代码和数据空间 每个线程有独立的运行栈和程序计数器 PC 线程切换开销小 线程和进程一
  • nmap常规使用和参数超细详解 -- 小黑liux武器库详解<宝藏文>

    namp非常强大的主机发现和端口扫描工具 这是web渗透常用的工具 包含四项基本功能 主机发现 端口扫描 版本侦测 操作系统侦测 目录 常规使用 单体拳法 组合拳 参数详解 主机发现 扫描技术 服务版本探测 操作系统检测 防火墙 IDS规避
  • opencv +数字识别

    现在很多场景需要使用的数字识别 比如银行卡识别 以及车牌识别等 在AI领域有很多图像识别算法 大多是居于opencv 或者谷歌开源的tesseract 识别 由于公司业务需要 需要开发一个客户端程序 同时需要在xp这种老古董的机子上运行 故
  • protoBuffer的下载以及使用①

    这里写了一个简单的示例检测proto是否可以使用 使用protoBuf需要提供以下 protobuf java 2 6 1 sources jar protoc 2 6 1 win32 zip 这两个文件我已经添加了附件 当然也可去谷歌官网