使用protobuf进行与Java通信
2013-06-25 14:59
405 查看
1.定义协议
创建一个以.proto为后缀的文件,本篇创建了一个名为msg.proto的消息文件,具体信息如下:
package tutorial;
option java_package = "com.protobuftest.protobuf"; (生成Java类时包名;C#类的命名空间)
option java_outer_classname = "PersonProbuf"; (生成Java、C#类的类名)
message Person {
required string name = 1;
required int32 id = 2;
optional string email = 3;
enum PhoneType {
MOBILE = 0;
HOME = 1;
WORK = 2;
}
message PhoneNumber {
required string number = 1;
optional PhoneType type = 2 [default = HOME];
}
repeated PhoneNumber phone = 4;
message CountryInfo {
required string name = 1;
required string code = 2;
optional int32 number = 3;
}
}
message AddressBook {
repeated Person person = 1;
}
package在Java里面代表这个文件所在的包名,在c#里面代表该文件的命名空间;
message代表一个类;
required 代表该字段必填;
optional 代表该字段可选,并可以为其设置默认值,默认值格式 :[defalut=Home],它是一个枚举类型。
2.双方都编译.proto文件(本篇文章主要用的是2.4.1版本的protobuf)
proto可以在Linux、Windows下编译。
protobuf 下载列表请参照:http://code.google.com/p/protobuf/downloads/list ,选择其中的win版本下载。解压后会得到一个 protoc.exe 文件,此时就可以开始编译了。
java 的编译的步骤如下:
1>在d盘建立protoc文件夹,将protoc.exe和msg.proto放在该文件夹下
2> 打开命令工具 cmd,执行d:\
3> D:/ >cd d:/protoc回车
(3) 输入protoc.exe --java_out=. msg.proto .后面的是空格,然后加上转换的proto文件
此时会发现 D:/protoc目录中多了一个文件夹com\protobuftest\protobuf,即以该proto的package命名的目录,会产生一个Msg.java的文件,这时这个文件就可以使用到我们的java或者android 工程了。
(4) 下载一个protobuf-java-2.4.1.jar的jar 包引用到你的java和android工程里面,之后可以使用你的protobuf了。
创建一个以.proto为后缀的文件,本篇创建了一个名为msg.proto的消息文件,具体信息如下:
package tutorial;
option java_package = "com.protobuftest.protobuf"; (生成Java类时包名;C#类的命名空间)
option java_outer_classname = "PersonProbuf"; (生成Java、C#类的类名)
message Person {
required string name = 1;
required int32 id = 2;
optional string email = 3;
enum PhoneType {
MOBILE = 0;
HOME = 1;
WORK = 2;
}
message PhoneNumber {
required string number = 1;
optional PhoneType type = 2 [default = HOME];
}
repeated PhoneNumber phone = 4;
message CountryInfo {
required string name = 1;
required string code = 2;
optional int32 number = 3;
}
}
message AddressBook {
repeated Person person = 1;
}
package在Java里面代表这个文件所在的包名,在c#里面代表该文件的命名空间;
message代表一个类;
required 代表该字段必填;
optional 代表该字段可选,并可以为其设置默认值,默认值格式 :[defalut=Home],它是一个枚举类型。
2.双方都编译.proto文件(本篇文章主要用的是2.4.1版本的protobuf)
proto可以在Linux、Windows下编译。
protobuf 下载列表请参照:http://code.google.com/p/protobuf/downloads/list ,选择其中的win版本下载。解压后会得到一个 protoc.exe 文件,此时就可以开始编译了。
java 的编译的步骤如下:
1>在d盘建立protoc文件夹,将protoc.exe和msg.proto放在该文件夹下
2> 打开命令工具 cmd,执行d:\
3> D:/ >cd d:/protoc回车
(3) 输入protoc.exe --java_out=. msg.proto .后面的是空格,然后加上转换的proto文件
此时会发现 D:/protoc目录中多了一个文件夹com\protobuftest\protobuf,即以该proto的package命名的目录,会产生一个Msg.java的文件,这时这个文件就可以使用到我们的java或者android 工程了。
(4) 下载一个protobuf-java-2.4.1.jar的jar 包引用到你的java和android工程里面,之后可以使用你的protobuf了。
相关文章推荐
- java netty socket库和自定义C#socket库利用protobuf进行通信完整实例
- 在Javascript中使用protobuf与c++进行通信
- 在Javascript中使用protobuf与c++进行通信
- erlang中使用google protobuf进行通信
- erlang中使用google protobuf进行通信
- java netty socket库和自定义C#socket库利用protobuf进行通信完整实例
- C#与Java通过protobuf进行网络通信过程中遇到的问题
- Java数据通讯中使用Google Protobuf 序列化与反序列化
- java序列化/反序列化之xstream、protobuf、protostuff 的比较与使用例子
- java与C#用protobuf通信--java如何转换protobuf-net中的bcl.Decimal对象
- android与PC,C#与Java 利用protobuf 进行无障碍通讯【Socket】
- java中使用protobuf序列化(反序列化)
- java34.HTTP通信------使用HttpClient进行Get方式通信
- java中使用socket进行udp方式通信时拔掉网线会导致send()方法阻塞
- C#使用Protocol Buffer(ProtoBuf)进行Unity中的Socket通信
- Java 网络编程(六) 使用无连接的数据报(UDP)进行通信
- Java protobuf框架使用向导
- mac protobuf java安装使用
- ProtocolBuffers (二) android与PC,C#与Java 利用protobuf 进行无障碍通讯【Socket】
- protoBuf的使用---java