gpt4 book ai didi

java - 如何将所有字节发送到单个数组中,然后在字节之间进行异或?

转载 作者:行者123 更新时间:2023-12-01 09:27:17 26 4
gpt4 key购买 nike

我有套接字应用程序,我可以逐字节读取,我需要将所有字节推送到一个数组中。我读如下。所以我将有 12+bodylen 字节。

int messageID = r.readUnsignedShort();
int bodyLen = r.readUnsignedShort();
byte[] phoneNum = new byte[6];
r.readFully(phoneNum);
int serialNum = r.readUnsignedShort();
byte[] messageBody = new byte[bodyLen];
r.readFully(messageBody);
byte checkCode = r.readByte();

我的挑战是如何将所有字节推送到一个 fullMessage 中,然后我需要在每个字节之间进行异或并以字节形式获取结果。

byte[] fullMessage = new byte[12+bodyLen];

最佳答案

如果您不需要将所有内容分开,而是需要将所有内容放在单个数组中,则在阅读 bodyLen 后,您可以执行以下操作:

int messageID = r.readUnsignedShort();
int bodyLen = r.readUnsignedShort();
byte[] fullMessage=new byte[12+bodyLen];
r.readFully(fullMessage,0,fullMessage.length);

此处 fullMessage 将包含您在代码中逐步读取的单个数组中的所有数据。

但如果您需要单独阅读所有部分:请阅读下文

要将数组和其他元素连接到数组中,请使用 ByteBuffer#put(byte[]) 。工作完成后,使用 ByteBuffer.array() 方法从缓冲区获取数组

byte[] fullMessage=byteBuffer.array();

稍后,迭代数组并执行所需的工作

for(int i=0,s=fullMessage.lengthl;i<s;i++){
// do your XOR operations -> xor operator is ^
}

关于java - 如何将所有字节发送到单个数组中,然后在字节之间进行异或?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39738803/

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