栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

【B站弹幕游戏开发笔记02】Win10系统下给Python项目导入Protobuf

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【B站弹幕游戏开发笔记02】Win10系统下给Python项目导入Protobuf

  • 安装
    Protobuf Github地址:https://github.com/protocolbuffers/protobuf/tree/master/python
    先检查,本地的python版本:python -V
    再检查,本地Protobuf版本:protoc --version
    找到 *protobuf-masterpython,*代表你解压的位置
    在cdm中切换到该位置,只有使用 python setup.py install 命令安装所需的依赖,如果安装了多个版本的pytho,
    需要用你在目标项目中使用的python项目版本的python来执行这个命令。
    

  • 写一个proto文件
    syntax = "proto3";
    package test;//这里使用文件名来做包名
    
    message MainPack 
    { 
        string playerName = 1;
    	string playerPass = 2;
    	string ip = 3;
    	int32 id = 4;
    }
    

  • 生成
    放protoc的路径protoc-3.19.4-win64binprotoc.exe --python_out=目标输出路径 test.proto
    
    在cmd中切换到 .proto 文件所在目录执行这条命令,执行完成后会在目标目录下生成 test_pb2.py
    

  • 使用
    from protobuf import test_pb2 as DGP
    mainpack = DGP.MainPack()
    mainpack.playerName = "MOYV"
    mainpack.playerPass = "test"
    mainpack.ip = "192.168.1.1"
    mainpack.id = 2
    send_msg =mainpack.SerializeToString()
    print(send_msg)
    
    # b'nx04MOYVx12x04testx1ax0b192.168.1.1 x02'
    

    附上在C#中的解析

    /// 
    /// 接收到的消息长度
    /// 
    /// 
    public void ReadBuffer(int length)
    {
    	MainPack pack = (MainPack)MainPack.Descriptor.Parser.ParseFrom(buffer, 0, length);
        Debug.LogError(pack.Ip);
    }
    

    QQ交流群(我不是群主):391584244

  • 转载请注明:文章转载自 www.mshxw.com
    本文地址:https://www.mshxw.com/it/743735.html
    我们一直用心在做
    关于我们 文章归档 网站地图 联系我们

    版权所有 (c)2021-2022 MSHXW.COM

    ICP备案号:晋ICP备2021003244-6号