我在通过 tcp 套接字通信 protobuf 时遇到问题,客户端在 Android 模拟器(运行 eclipse + ADP + SDK android-15)和 C++ 中的服务器(Visual Studio 2010)中工作,两者都在 Windows 7 上。Protobuf 版本:2.4 .1
.proto
package pck;
option java_package = "my.messages.package";
option java_outer_classname = "ClassName";
option optimize_for = LITE_RUNTIME;
message msg_name {
optional int32 VARIABLE = 6;
//moro...
}
客户端:安卓端
msg_name outMsg = to_send.build();
ByteArrayOutputStream output = new ByteArrayOutputStream();
outMsg.writeTo(output);
//now output.toString() is sent via tcp socket...
我得到的,我在这里问的原因是:通信正常,消息到达服务器端点,但是 int32 变量的值如下:
(在 android 上发送的值 ->> 在 visual-c++ 端读取的值)
- android: [0, 127] ->> visual-c++: [0, 127] 工作正常,好的。
- 机器人:[128, 255] -->> visual-c++:3104751
- 安卓:[256, 383] -->> visual-c++:5201903
- ...
那么,这是编码的问题吗?我在客户端 android 端的 protobufs 有问题吗?(我必须说这是我在 android 上的第一天,opss!)