0
我是MQTT
和Android Open Accessory "AOA"
的新手。在閱讀教程時我意識到,在嘗試寫入ByteArrayOutputStream
類型的變量之前,應該先將0
或0x00
寫入該變量。初始化ByteArrayOutputStream?
這是一種初始化嗎?下面是一個例子:
EX_1
variableHeader.write(0x00);
variableHeader.write(PROTOCOL_NAME.getBytes("UTF-8").length);
variableHeader.write(PROTOCOL_NAME.getBytes("UTF-8"));
EX_2
public static byte[] connect() throws UnsupportedEncodingException, IOException {
String identifier = "android";
ByteArrayOutputStream payload = new ByteArrayOutputStream();
payload.write(0);
payload.write(identifier.length());
}
謝謝fr下answe,但請讓我知道,爲什麼右移用於隨後並且通過0xFF – user2121 2014-11-02 14:06:29
'長度>> 8'的擦除通過將數字向下移動來寫入高字節b y 8位,使得位置8至15的位現在位於位0至位7中。位於位置0至7的位被移除。 (對於正數,這相當於將數字除以2的8次冪,即256)。對於較低長度的字節,位0至7已經位於想要的位置,但我們需要關閉其他位的數字,這是通過與0xFF進行AND操作完成的,0xFF是僅設置了位0到7的數字。 – Boann 2014-11-02 14:12:30
謝謝。我有另一個問題涉及到同一主題,請看看如果你不介意http://stackoverflow.com/questions/26689636/regarding-the-mqtt-fixed-header-structure – user2121 2014-11-02 14:22:27