TCP資料接收處理方法

2021-10-09 21:02:32 字數 348 閱讀 3928

tcp作為流式傳輸協議,只能保證傳送和接收的資料,順序是一致的,而無法保證send和recv時返回的長度是一致的,send的資料有可能是多條資料的合併,也可能是大資料的分包,那麼如何解決這個問題?

通常建議通過約定協議解決,比如增加頭,頭里帶上資料長度,接收方通過資料長度來讀對應的資料。

寫個簡單的偽**例子:提供個思路,具體邏輯處理要自行完善

timer

(10ms)

else}if

(datalen == tcplen)

}

以上是乙個比較常規的做法,除此之外,當然還有其他優秀的方法,這邊沒有逐一列出。

tcp中傳送接收外帶資料(緊急資料)方法

oob send.c include include include include include include define bug size 30 void error handling char message int main int argc,char ar int sock stru...

串列埠資料接收處理

串列埠接收函式只需要管理資料的接收就行了,不必管理相應資料接收的是什麼,還有順序對不對,真正尋找資料的地方是在資料處理的地方。void usart2 irqhandler void 資料處理端,函式來自於onenet麒麟板程式 if dataptr null num atoi const char ...

tcp接收策略

1.首先,接收乙個長度。然後,根據長度再繼續接收資料。感覺要好一點 2.直接接收所有,再判斷長度 最近在調程式的時候,發現傳送端傳送乙個119136個char的記憶體的時候,在接收端不能全部接收,於是,通過除錯發現,必須在接收端多次的recv以後,進行拼接 如下 char lenbuf 4 int ...