pbc icon indicating copy to clipboard operation
pbc copied to clipboard

PBC Encode 的数据到 Protobuf-net decode 失败

Open xanorphica opened this issue 8 years ago • 3 comments

我试过序列化后的二进制值的顺序每次都不一样,一直在变,用反序列化的方法可以成功反序列化

但是发送到其它端用C# Python之类的就反序列化失败了 最后看了一下,除lua版protobuf外,其它语言反序列化出来的数据二进制值的顺序都是不变的

是这个影响反序列化失败么? 有没有解决方法呢?

跪求

xanorphica avatar May 26 '17 04:05 xanorphica

同样遇到了这个问题. 目前项目用的是xlua+protofu-net(c#解析pb)+pbc(lua解析pb)+rakNet 因为要做lua热更新,所以要在lua中解析pb. 但rakNet 我项目的情况是,在lua中使用pbc,序列化和反序列化都OK. 把序列化好的string传到c#中用protobuf-net来反序列化, 很多情况下会失败. 不知道是什么原因.请云风帮忙解释一下.谢谢!

phoenixgou avatar Sep 14 '17 06:09 phoenixgou

@cloudwu 大神,请多指教!目前测试, 用pb-net反序列化, 会出现问题的, 一定是对64位数值的解析,提示如下 LuaException: c# exception:Number overflow.,stack: at ProtoBuf.ProtoReader.TryReadUInt64VariantWithoutMoving (System.UInt64& value) [0x002bc] in C:\work_unity\protobuf_net_pbc_lua\Assets\3rd\protobuf_net\ProtoReader.cs:421 使用的lua版本是5.3.4 pb 是2.4 工程用例在 https://github.com/phoenixgou/xlua-protobuf-net-pbc.git

phoenixgou avatar Sep 14 '17 07:09 phoenixgou

我也遇到这个问题了,是protobuf版本的原因吗?

rekcah1986 avatar Oct 25 '17 10:10 rekcah1986