Protobuf在Java中的使用
来源:互联网 发布:mac解压软件 编辑:程序博客网 时间:2024/05/22 17:28
1.Protobuf的理解
是用于结构化数据串行化的灵活、高效、自动的方法,有如XML,不过它更小、更快、也更简单。你可以定义自己的数据结构,然后使用代码生成器生成的代码来读写这个数据结构。你甚至可以在无需重新部署程序的情况下更新数据结构,总的来说就是传输协议中的一种。Protobuf的官方网址为http://code.google.com/apis/protocolbuffers/docs/tutorials.html 。
核心:
2.Protobuf的安装与在netty中的使用
1.首先要在Java项目中新创建一个.proto文件,相当于确定数据协议,数据结构中存在哪些数据,数据类型是怎么样
option java_package = "cn.huikey.chat.proto";//写的是生成文件的包名option java_outer_classname = "ChatMessage";//生成的类文件名
//消息类message Message{optional string senderName = 2;optional string receiverName=6;optional string content=9;optional string type=10;optional string palindType=11; optional int32 status=12;}
</pre><pre name="code" class="java" style="font-family: 'Hiragino Sans GB W3', 'Hiragino Sans GB', Arial, Helvetica, simsun, u5b8bu4f53; font-size: 16px;">3.添加jar,protocol.exe(jar与exe必须为同一版本),编写cmd文件
@ECHO OFFcd /d D:\MyEclipseWork\ProtobufServer\proto //proto文件名根目录protoc --java_out=../chat chatMessage.proto //资源包+空格+proto文件名pause
4.运行cmd文件即可
5.protobuf在netty中的使用
1.protobuf的数据读取
a.数据的写入
Builder Builder = Message.newBuilder();Builder.setType("0");Builder.setReceiverName("admin");byte[] Bytes = Builder.build().toByteArray();ByteBuf Buf = Unpooled.buffer(Bytes.length);Buf.writeBytes(Bytes);channel.writeAndFlush(Buf);
b.数据的读取
Message message=(Message) msg;System.out.println(message);
c.Protobuf的赋值
ChatMessage.Message.newBuilder().setType(Contact.FRIENDSTRUE).setReceiverName(message.getReceiverName()
.setSenderName(message.getSenderName()).setStatus(Contact.SUCCESS).setContent("添加好友成功!")).build;
0 0
- Protobuf在Java中的使用
- protobuf在Java中的简单使用
- Protobuf在java项目中的使用
- protobuf java中的使用
- Protobuf在Python中的使用
- protobuf 在lua中的使用
- Protobuf在Python中的使用
- protobuf在C#项目中的使用
- protobuf---真正-- 在IOS中的使用
- ProtoBuf在Unity3D中的简单使用!
- Java中的Protobuf使用例子(转)
- Protobuf在java中使用例子
- 【Protobuf】Protocol buffer在Java语言中的应用01
- ProtoBuf 的java使用
- ProtoBuf 的java使用
- ProtoBuf 的java使用
- protobuf 的java使用
- protoBuf的使用---java
- C++进阶学习——单例模式的实现
- vi/vim个人配置文件
- 寒風的Cocos之旅C++篇之进度条的使用
- libraw使用
- 95 php echo请求头跳转问题
- Protobuf在Java中的使用
- Python中列表、元组、字典的异同
- kvm相关文章
- JDBC获取表主键
- ofbiz中用 ajax 几点注意
- XML新手入门基础知识
- Features/Snapshots
- Android 各种菜单,弹出菜单,打开文件子菜单,文本框的复制粘贴全选菜单效果,自定义图片文字菜单效果,PopupMenu,PopupWindow
- 戏说 ofbiz 权限组 角色 控制