簡體   English   中英

如何將所有字節發送到單個數組中,然后再在字節之間進行異或運算?

[英]How to send all byte into single array and later xor between the bytes?

我有套接字應用程序,我可以逐字節讀取字節,並且需要將所有字節放入一個數組中。 我讀如下,所以我將有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 ^
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM