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