gpt4 book ai didi

java - Java 实现二进制协议(protocol)

转载 作者:行者123 更新时间:2023-12-01 13:09:53 25 4
gpt4 key购买 nike

我正在尝试在 Java Android 应用程序中实现二进制协议(protocol)。该协议(protocol)中的变量是无符号的,并且是 uint32、uint16 或 uint8。

我在发送整数值时遇到问题。例如,当我尝试发送值为 1 的短消息时,服务器(用 C++ 编写)收到的值为 256。

经过一番搜索后,我看到一些帖子谈论字节顺序等,但它并没有真正给我答案。

如何才能使存储在 Java 变量中的位以与 C++ 中相同的方式对齐。

谢谢

最佳答案

C++ 没有定义多字节整数中字节的存储顺序。您应该选择一种标准并确保每个人都使用它。

Java 中的标准 API 有许多使用大端字节顺序的类,因此您不妨使用它作为标准。例如,要在 C++ 中正确接收这些内容,您可以使用 ntohlntohs 函数进行转换。

关于java - Java 实现二进制协议(protocol),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22971805/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com