我試圖使一個可靠的UDP系統和I需要轉換字節[]到int和背面(JCreator的5.0 LE)需要4個字節的數組轉換成一個int
DatagramPacket的需要在其數據字節[]形式,所以我爲int信息轉換成字節[],所以我可以發送它:
byte[] data = new byte[48];
System.arraycopy(task.getProtocol().byteValue(), 0, data, 0, task.getProtocol().byteValue().length);
System.arraycopy(task.getMessage().byteValue(), 0, data, 4, task.getMessage().byteValue().length);
System.arraycopy(task.getSequence().byteValue(), 0, data, 8, task.getSequence().byteValue().length);
System.arraycopy(task.getAcknowledge().byteValue(), 0, data, 12, task.getAcknowledge().byteValue().length);
for (int i = task.getAcknowledge(); i >= 0 && i > task.getAcknowledge() - 33; i--) {
for (Packet j: tasks) {
if (j.getSequence() == i) {
data[i] = 1;
break;
}
}
}
out = new DatagramPacket(data, data.length, ds.getInetAddress(), portNum);
ds.send(out);
協議是protocolID
消息是正在發送
「信息」序列是數據包的序號;發送的第一個分組具有的0的序列,接下來是1,等等
應答是被送回
的分組的確認接下來的部分是32個其他確認。爲了節省內存,它們被壓縮成每個1字節而不是4個字節(int)
現在,當我收到數據包時,我需要將它解包。首先,我需要檢查前4個字節(協議),看看我是否會忽略數據包,但我不知道如何將字節數組轉換爲int。
看在http://stackoverflow.com/questions/1936857/convert-integer-into-byte-array-java – gtgaxiola
還是這個相關[示例](http://stackoverflow.com/a/2212025/230513)。 – trashgod
[link] http://stackoverflow.com/questions/11437203/byte-array-to-int-array http://stackoverflow.com/questions/7619058/convert-a-byte-array-to-integer -in-java-and-vise-versa http:// stackoverflow。com/questions/1026761/how-to-convert-a-byte-array-to-its-numeric-value-java –