TCP協議傳輸大檔案讀取時候的問題

2022-01-13 04:59:18 字數 341 閱讀 8786

大檔案傳不完的bug

我們在定義的時候定義服務端每次檔案讀取大小為10240,

客戶端每次接受大小為10240

我們想當然的認為客戶端每次讀取大小就是10240而把客戶端的讀下來的檔案想當然大小每一次都加上10240

而實際上服務端傳送檔案send每次傳送不一定是一次性把10240的檔案傳送完,可能分了好幾次進行傳送至緩衝區這我們實際檔案大小就不一定是10240

解決辦法:

1.對於每次服務端所傳送的檔案內容及大小都傳送給客戶端,讓客戶端一一對應讀取

TCP傳輸大檔案問題總結

近日的專案中,用到了大檔案的傳輸,遇到了一些問題,總結如下 1.基本思路 1 大檔案的傳輸,需要分解成小包,再進行傳輸 2 傳送方和接收方建立鏈結,當接收方同意接收後,傳送同意接收標誌。傳送方開始傳送資料第乙個小包,包括檔名稱 檔案大小 傳送小包id 小包位元組內容 3 接收方接收資料,根據需要建立...

傳輸層 TCP協議的可靠傳輸

tcp可靠傳輸的實現主要依靠滑動視窗和超時重傳機制。滑動視窗與超時重傳,保證了資料段傳輸不重複,不丟失,不差錯,按序到達。tcp對待傳送的資料按位元組進行編序,比如0號位元組,1號位元組,2號位元組 tcp每傳送乙個報文段,就對這個報文段設定一次計時器,如果超時,重傳該報文。tcp基於滑動視窗協議實...

QT的TCP協議編寫檔案傳輸

下面通過tcp協議通訊講解傳送檔案和接收檔案 一 客戶端作為檔案傳送端 1 思路步驟 連線伺服器 當連線成功後會傳送connected訊號 在槽函式中傳送檔案頭資訊 當資料傳送成功後會傳送byteswritten 在槽函式中傳送檔案內容 2 實現 如下 filesend.h ifndef files...