1. 程式人生 > >tcp資料傳輸&粘包的產生和解決

tcp資料傳輸&粘包的產生和解決

recv會不斷取出緩衝區中內容,如果一次沒有拿完,那麼下面繼續收取沒拿完的資訊。
tcp粘包:
指的是傳送方傳送若干次資料的時候,因為是資料流的傳輸方式,導致資料粘連在一起,接收方一次將多次傳送的資料一起接收,產生接收資料的粘連。
粘包是tcp傳輸特有的現象,因為tcp傳輸沒有訊息邊界。
如果是傳送連續的內容,比如檔案等,則粘包沒有影響,如果是每次傳送為單獨的內容。則需要處理粘包。

粘包的產生,就是接收發送過快導致的。

如何處理粘包:
1. 將訊息格式化,比如每次傳送訊息都是64位元組,每次接收64位元組;
2. 傳送訊息的同時傳送一個訊息長度標識,
3. 讓訊息的傳送延遲,使接收端每次都能夠有時間接收一個訊息。0.1s延遲就可。
4.