【发布时间】:2018-12-18 06:07:09
【问题描述】:
我目前正在用 C++ 编写一个服务器和一个使用 google protobuf 从中接收数据的 Android 应用程序。目前我用大小框数据,所以基本上我发送
-----------------------------------------------------
| payload size (4byte, unsigned) | protobuf payload |
-----------------------------------------------------
我在 Java 中反序列化这些东西没有问题,但是如何将字节从套接字转换为无符号整数? payload size 始终是一个 uint32_t,它已使用 htonl 转换为网络字节顺序。所以Java需要转成主机字节序,再转成Integer。
【问题讨论】:
-
@EtiennedeMartel 它不是直接重复的,因为我首先还需要知道如何将字节转换为 uint32_t。
-
Java int 已经是 32 位了,就是这样。
-
@EtiennedeMartel 他们是签名的还是未签名的?以及如何从字节数组中获取 int?
-
@Nidhoegger in Java int 总是有符号的,