WIRELESS Z PACKET:
i8-version(WZPUnit.getVersion() & 3 | WZPUnit.MAGIC_MASK = 1 & 3 | -48 = 0xD1)
i16-tagmask(WZPTag:HAS_BODY(0x1000)|HAS_RESPONSE_CODE(0x4000)|HAS_EXTRA_HEADER(0x2000))
i16-appId
i16-serviceId
i16-serialId
[, u16-responseCode(Non-zero if exist: ...)]
[, varint32-EXTRA_HEADER_LENGTH(max=16383)]
[, varint32-BODY_LENGTH(max=2097151)]
[, bytes-EXTRA_HEADER]
[, bytes-BODY]
默认ExtraHeader是不压缩的,如果里面要存放压缩方法,也是针对Body的
i16-EXTRA_HEADER_code
varint32-EXTRA_HEADER_length
bytes-EXTRA_HEADER(Byte[]-UTF8_String, byte[]{higher, lower}_Number)
敲定解压缩密钥,如果WZPUnit标记了加密就用这个
处理BODY和EXTRA_HEADER正反过程:
应用数据到WZPUnit-是否压缩(EXTRA_HEADER不需要压缩)-是否需要加密-Socket写流
Socket读流-是否需要解密-是否压缩(EXTRA_HEADER不需要解压)-应用数据到WZPUnit
时间: 2024-10-10 20:57:04