第十課 自定義數據包協議

客戶端發送到服務端兩條數據

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字節(描述數據部分字節長度)
 * 
 */

自定義數據包協議示例

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章