客戶端發送到服務端兩條數據
give me a coffee give me a tea
服務端收到的數據:
- give me a coffeegive me a tea 粘包現象
- give me
- a coffeegive me a tea 分包現象
粘包和分包出現的原因是:沒有一個穩定數據結構
解決方法
(1) 分割符
give me a coffee|give me a tea|
give me a coffee|
give me a tea|
(2) 長度 + 數據
16give me a coffee13give me a tea
16give me a coffee
13give me a tea
(3) 自定義數據包結構
/**
*
*
* 數據包格式
* +——----——+——-----——+——----——+——----——+——-----——+
* | 包頭 | 模塊號 | 命令號 | 長度 | 數據 |
* +——----——+——-----——+——----——+——----——+——-----——+
*
* 包頭4字節
* 模塊號2字節short
* 命令號2字節short
* 長度4字節(描述數據部分字節長度)
*
*/