|
是這樣的,
1、每次解析出來的數(shù)據(jù),也就是一包數(shù)據(jù),我會(huì)按每幀的方式放在一個(gè)全局變量的數(shù)組里面,也就是一個(gè)數(shù)組,前8個(gè)字節(jié)存第一幀,8-16存第二幀,16-24第三幀,結(jié)束之后,這個(gè)全局變量就是一包;
2、然后這次包來了的話,依舊是把它按上一包的方式,覆蓋在這個(gè)全局變量里面;
3、下包來了,依然是解析出來,放在上一包上面
4、包的概念主要是,多幀解析之后組合成一包,比如說一幀8個(gè)字節(jié),這次這一包是3幀,這三幀就會(huì)組成一包,大小的話,由第一幀里面的某個(gè)數(shù)據(jù)表示;比如說第一包是00 00 07 00 00 00 00 00,這里的07就是長(zhǎng)度,表示7個(gè)字節(jié),這一包完整的一包就是,00 00 07 00 00 00 00 00 01 xx xx xx 00 00 00 00,這里就是一包;
我現(xiàn)在遇到的問題是,如果上一包數(shù)據(jù)長(zhǎng)度比這一包數(shù)據(jù)長(zhǎng)度長(zhǎng)的話,這一包的數(shù)據(jù)除了原本需要有的數(shù)據(jù)以外,還會(huì)多出來上一包數(shù)據(jù)未被覆蓋的數(shù)據(jù),導(dǎo)致一包數(shù)據(jù)不對(duì),這里我嘗試過打印完數(shù)據(jù)之后,用memset函數(shù)給這個(gè)全局變量清零,但是直接全部數(shù)據(jù)都亂了,還未找到原因; |
|