码迷,mamicode.com
首页 > 其他好文 > 详细

通信协议参考

时间:2014-08-10 15:20:40      阅读:211      评论:0      收藏:0      [点我收藏+]

标签:style   http   color   使用   文件   数据   for   ar   

一、Protocol Buffers简介
现在开源的《烽烟OL》的通信协议采用的是Google 的Protocol Buffers,Protocol Buffers(以下简称PB)是一种用于序列化结构化数据的机制,可用于用于分布式应用之间的数据通信或者异构环境下的数据交换。它具有灵活、高效、自动化的特点,类似于XML,但是比XML更小巧、快捷、简单。在Google 几乎所有它内部的RPC协议和文件格式都是采用PB。
PB具有以下特点:
1)平台无关、语言无关
2)高性能 比XML块20-100倍
3)体积小 比XML小3-10倍
4)使用简单
5)兼容性好
当然,PB也有缺点,与XML相比,PB的缺点是不易读。众所周知,XML是一种自描述语言,一看就可知道其作用,见文知意。而PB序列化后是一串二进制代码,如果没有对应的协议格式(即.proto文件),想要读懂它难如登天。
二、Protocol Buffers安装
1)下载Google Protocol Buffer源码包 
下载可以到protobuf官网下载:http://code.google.com/p/protobuf/downloads/list,我下载的是Protocol Buffers 2.5.0 compiler。
2)解压压缩包 
解压压缩包后,会得到文件列表。
3)编译vs工程 
在解压后的文件夹中,打开vsprojects目录. 打开libprotobuf.vcproj(这个是vs的工程文件,打开前请确认安装了vs2005 或vs2008,vs2010等等),在打开工程中,   可能需要转换工程,直接转换就行了。
右键分别生成libprotobuf,libprotobuf-lite,libprotoc,protoc这四个工程(编译模式为Release 模式)。
4)编译完成 
编译完成后,可以在vsprojects\Release下发现3个lib和一个exe文件,他们分别是libprotobuf.lib,libprotobuf-lite.lib,libprotoc.lib和protoc.exe。
5)拷贝文件到windows目录下: 将得到的libprotobuf.lib,libprotobuf-lite.lib,libprotoc.lib和protoc.exe拷贝到系统盘的windows目录下。如果你的系统安装在C盘,那么就拷贝到c:\windows目录下 。
6)编译proto文件,生成python文件 
假设在E:\test目录下有一个名为test.proto的proto文件,那么打开CMD,输入“protoc.exe -I=e:\test --python_out=e:\test e:\test\test.proto ”就可以生成python源码文件
test_pb2.py,在需要用到的工程里import这个文件就可以直接用了。
三、Firefly中使用Protocol Buffers实例
下面是一个玩家接受任务的通讯实例,先上proto文件
1)applyQuest.proto

bubuko.com,布布扣


message applyQuestRequest为客户端的请求
message applyQuestResponse为服务器的回复
用上面的编译方法将applyQuest.proto编译成python源码文件applyQuest_pb2.py
2)quest.py文件,服务端处理这个请求的文件。

bubuko.com,布布扣


3)客户端也会有对应的proto文件,可以将服务器发回来的数据解析出来,得出此次交互的结果。

通信协议参考,布布扣,bubuko.com

通信协议参考

标签:style   http   color   使用   文件   数据   for   ar   

原文地址:http://www.cnblogs.com/123ing/p/3902717.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!