数据获取
如何跟B站的弹幕服务器保持通讯在这里就不赘述了。
假设你恰好收到了服务器发来的一段socket数据,放到了 unsigned char 数组里:
{
0, 0, 1, 9, 0, 16, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 123, 34, 105, 110, 102, 111, 34, 58, 91, 91, 48, 44, 49, 44, 50, 53, 44, 49, 54, 55, 55, 55, 50, 49, 53, 44, 49, 52, 56, 53, 53, 51, 54, 53, 50, 48, 44, 51, 54, 57, 55, 49, 56, 49, 57, 57, 44, 48, 44, 34, 57, 97, 55, 98, 48, 98, 48, 97, 34, 44, 48, 93, 44, 34, 98, 105, 108, 105, 98, 105, 108, 105, 45, 40, 227, 130, 156, 45, 227, 130, 156, 41, 227, 129, 164, 227, 131, 173, 228, 185, 190, 230, 157, 175, 126, 34, 44, 91, 50, 57, 52, 55, 57, 55, 50, 50, 44, 34, 232, 139, 143, 231, 180, 171, 231, 131, 159, 34, 44, 48, 44, 48, 44, 48, 44, 49, 48, 48, 48, 48, 44, 49, 93, 44, 91, 53, 44, 34, 231, 179, 150, 231, 186, 184, 34, 44, 34, 232, 167, 133, 231, 179, 150, 232, 143, 140, 34, 44, 50, 55, 51, 53, 51, 52, 44, 54, 57, 51, 53, 55, 57, 56, 93, 44, 91, 49, 51, 44, 48, 44, 54, 52, 48, 54, 50, 51, 52, 44, 34, 62, 53, 48, 48, 48, 48, 34, 93, 44, 91, 34, 116, 105, 116, 108, 101, 45, 53, 56, 45, 49, 34, 44, 34, 116, 105, 116, 108, 101, 45, 53, 56, 45, 49, 34, 93, 44, 48, 44, 48, 93, 44, 34, 99, 109, 100, 34, 58, 34, 68, 65, 78, 77, 85, 95, 77, 83, 71, 34, 125}
数据处理
首先取当前数组的前16位,按字节数4 2 2 4 4分割当前数组,获得当前数据包的结构信息:
0 0 1 9
| 0 16
| 0 0
| 0 0 0 5
| 0 0 0 0
前16位的含义: 数据包总长度 | 未知 | 未知 | 数据包类型 | 未知
下面是我们获得的数据包结构信息:
Data length: 0 0 1 9
Data type: 0 0 0 5
Data body length: (Da