protocol buffer 在游戏开发中的使用方式之一

Protocol buffer 是一种语言无关、平台无关、扩展性好的用于通信协议、数据存储的结构化数据串行化方法。它更小、更快、也更简单。你可以定义自己的数据结构,然后使用代码生成器生成的代码来读写这个数据结构。你甚至可以在无需重新部署程序的情况下更新数据结构(这个功能没用过)。正是因为它的这些特性,在游戏服务器与客户端的网络通信中,为了减小信息传输大小,提高高并发下信息传输速率,以及不同客户端之间的兼容性,都会选择它作为信息序列化与反序列化的工具。本例子使用Netty4.1.5作为网络通信,JDK版本是1.8。

一,准备工作

 1,下载prootbuf的编码工具protoc.exe,下载地址:链接:http://pan.baidu.com/s/1nvpnwhz 密码:a0hc

 2,解码目录,得到protoc.exe

 

二,协议格式制定

当我们需要游戏客户端与服务器行进交互的时候,我们必须定义交互数据的格式,以方便客户端与服务器都能理解解析。这其实就是我们常说的报文。因为在互联网中传输的信息都会被转化为二进制流。所以我们必须自己定义包的大小和结构。例如

包总长度

包内容

int

object

4字节

变长

这个协议包括两部分,一个是包内容的长度,一个是包的内容,在信息传输时,我们把包的内容使用protocol buffer进行序列化,如果序列化时使用的是protocol buffer工具,那么在解析,也就是反序列化时,也必须使用protocol buffer 工具。

 

三,protocol buffer的定义。

我们现在就使用protocol buffer工具做一个登陆请求的例子。在登陆的时候,客户端需要向服务器发送登陆的用户名和密码,这就是请求包的内容。我们先看一下protocol buffer的一些定义

。。。。。。。。。。。。。。。。。。。。

全文请参照:http://www.youxijishu.com/nd.jsp?id=133&_np=2_323

posted @ 2016-09-26 11:28  游戏技术  阅读(598)  评论(0)    收藏  举报