跳到主要內容

解析數據包頭

我們的協議包的大小時可變長的,這裏會用一個數據包頭來描述數據包攜帶的數據類型和數據大小。

信息

數據包頭的大小是固定的 1 個字節

結構

 0 1 2 3 4 5 6 7
+-+-+-+-+-+-+-+-+
| type |v|g|re.|
+-+-+-+-+-+-+-+-+
字段長度 (bit)說明
type41 - request
2 - resopnse
3 - push
verify1數據是否加簽標誌

0 - 不加簽
1 - 加簽
gzip1數據是否使用 gzip 壓縮:

1 - 壓縮
0 - 不壓縮
reserve2預留

例子

// reserve - 0, gzip - 0, verify - 0,  type - 1
0b 0000 0001

// reserve - 0, gzip - 1, verify - 0, type - 2
0b 0011 0010

// reserve - 0, gzip - 1, verify - 1, type - 3
0b 0001 0011


// reserve - 3, gzip - 1, verify - 0, type - 3
0b 1110 0011