Netty的深入浅出--8.ProtocalBuffers的简单实例

建议大家直接先去读官方文档。读完之后再来看下面实例会更有收获哦O(∩_∩)O

 

添加一个protocol的插件:

Netty的深入浅出--8.ProtocalBuffers的简单实例

创建一个.proto文件

Netty的深入浅出--8.ProtocalBuffers的简单实例

指定protocol的语法:

Netty的深入浅出--8.ProtocalBuffers的简单实例

加快解析速度(默认是speed):

Netty的深入浅出--8.ProtocalBuffers的简单实例

Netty的深入浅出--8.ProtocalBuffers的简单实例

 定义java的包路径,可以和之前的不一样:

Netty的深入浅出--8.ProtocalBuffers的简单实例

定义java类的外部名(可以和文件名不一样):

Netty的深入浅出--8.ProtocalBuffers的简单实例

 定义属性:

required:必须被初始化的

optional:可选择初始化的

Netty的深入浅出--8.ProtocalBuffers的简单实例

接下里要生成源代码:

Netty的深入浅出--8.ProtocalBuffers的简单实例

第一个是指定声明文件的路径,第二个指定的是源文件路径 

Netty的深入浅出--8.ProtocalBuffers的简单实例

运行之后,生成文件:

Netty的深入浅出--8.ProtocalBuffers的简单实例

 创建测试代码ProtoBufTest:

Netty的深入浅出--8.ProtocalBuffers的简单实例

创建student并且赋值:

Netty的深入浅出--8.ProtocalBuffers的简单实例

 将其转换成字节数组:

Netty的深入浅出--8.ProtocalBuffers的简单实例

反序列化出来:

Netty的深入浅出--8.ProtocalBuffers的简单实例

运行:

Netty的深入浅出--8.ProtocalBuffers的简单实例

解析程序:其中重要一点就是转换成 字节数组,这样的话就可以在网络上进行传输,通过netty等网络框架就可以实现从计算机A发送给计算机B了。然后计算机B就可以通过反序列化生成一个对象来使用。