zoukankan      html  css  js  c++  java
  • 通信协议参考

    一、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)编译完成 
    编译完成后,可以在vsprojectsRelease下发现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: est目录下有一个名为test.proto的proto文件,那么打开CMD,输入“protoc.exe -I=e: est --python_out=e: est e: est est.proto ”就可以生成python源码文件
    test_pb2.py,在需要用到的工程里import这个文件就可以直接用了。
    三、Firefly中使用Protocol Buffers实例
    下面是一个玩家接受任务的通讯实例,先上proto文件
    1)applyQuest.proto




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




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

  • 相关阅读:
    Running APP 使用说明
    Android 控件八 WebView 控件
    Android 控件七 ImageView 控件
    Android 控件六 CheckBox 控件
    Android 控件五 RadioButton 控件
    Android 控件四 EditText 控件
    Android 控件三 TextView 控件实现 Button
    Android 控件二 Button
    Android 基础控件演示实例
    Android 控件一 TextView
  • 原文地址:https://www.cnblogs.com/123ing/p/3902717.html
Copyright © 2011-2022 走看看