gpt4 book ai didi

java - java中网络字节顺序到主机字节顺序

转载 作者:行者123 更新时间:2023-12-01 19:02:59 26 4
gpt4 key购买 nike

我一直在解释从 C 服务器到我的 java 应用程序的响应。希望 C 服务器以 BIG_ENDIAN 格式响应我的 java,我的问题是如何将响应转换为 Integer。我正在粘贴从 C 服务器获得的响应,并想知道如何在 java 中执行“be64toh”功能。

来自 C 服务器的响应 -

^@^@^@^@^@^@^@^@^@^@^@^@^@^@^H^@^@^@^@^@^A^A^B^@^@^@^N^@^@^@^@^@^@^@^@^@^@^@^H^@^@^@^@^@^@^@^A^@^@^@^K^@^@^@^@^@^@^@^@^@^@^@<80>^@^@^@^@^@^@^BÃ^@^@^@^AYour request is successfully registered with us and is under processing.^@^@^@^@^D^@^@^@^@^@^@^@¨ýf^@^@^@^@^@mX@^@^@^@^@^@^@^@^@^N^@^@^@^@^@^@^@^@^@^@^@^H

我不确定如何解释这些不可读的字节,当转换为十六进制时,它们中的大多数都是null,但其中很少有像^H那样填充了数据code>、^A 等。您能帮我找到这个问题的解决方案吗?

最佳答案

假设您有一个 java.nio.SocketChannel 可供读取,您可以使用 ByteBuffer 来进行转换:

private static final int BUFFER_SIZE = 1024;

ByteBuffer readBuffer = ByteBuffer.allocate(BUFFER_SIZE).order(ByteOrder.BIG_ENDIAN);
int bytesRead = socketChannel.read(readBuffer);
readBuffer.flip();

现在您可以从缓冲区中读取数据,例如:

int someInt = readBuffer.getInt();
long someLong = readBuffer.getLong();

关于java - java中网络字节顺序到主机字节顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11521830/

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