UDP,鑑於其丟包和亂序(後發先至)問題,爲保證其可靠性設計以下報頭協議,供你們參考git
數據包總大小按照MTU設計設置,小於1500字節github
數據包示意圖
數組
1.類型(1字節)服務器
數值 | 說明 |
---|---|
0 | 文字類型 |
1 | 圖片類型 |
2 | 文件類型 |
2.傳輸狀態(1字節)設計
目前數值4未使用,可考慮後期使用server
數值 | 說明 |
---|---|
0 | 客戶端發送給服務器提示要傳大文件 |
1 | 服務器發送給客戶端已準備好接受 |
2 | 客戶端發送文件中 |
3 | 客戶端發送完成,詢問服務端接收狀況 |
4 | 服務端發送客戶端接收完成 |
5 | 要求客戶端重發丟包數據 |
6 | 用於文件數據適用於單個包發送 |
3.包序列號(2字節):序列號爲發送包在分割包中的位置blog
4.大文件傳輸的分割包總數(2字節):用於肯定包是否接收完整有無丟包圖片
1.在大文件發送時進行通知準備和準備肯定get
2.大文件(各分割包)傳輸it
3.大文件發送完畢
4.文件傳輸示意圖
這裏不po出具體代碼,有興趣的同窗可自行前往下載demo,demo中有使用opencv,如不須要自行刪除便可,如文中有錯誤之處望指出!