用 VC socket 傳輸大檔案

2021-06-12 10:32:36 字數 982 閱讀 1363

在這個程式中,客戶端讀取桌面的乙個 1.48 gb (1,597,701,030 位元組) 的rar檔案傳送給伺服器。因為這裡僅用於學習,所以客戶端要連線的目標位址使用127.0.0.1。伺服器端接將收的檔案檔案儲存在c盤根目錄下。

為保證程式的可靠傳送,程式採用tcp協議。經過反覆試驗得出結論,程式中的重中之重是雙方的 readfile 和 writefile。相反 recv 和 send 不是重要的。為了使**盡量簡化,程式去掉所有錯誤檢查,只讓伺服器端的accept函式提示一下有人發起連線。雙方收發完檔案之後直接退出程式。

//伺服器端

#include#includeusing namespace std;

const int ibuffersize = 1024*1024;

char buffer[ibuffersize];

void main()

}}

//客戶端

#include#includeusing namespace std;

const int ibuffersize = 1024*1024;

char buffer[ibuffersize];

void main()

send(s1, buffer, ibuffersize, 0);

cout<<"已傳送 "

<< (i64filesizecopy.quadpart - i64filesize.quadpart) <<"b "

<< (i64filesizecopy.quadpart - i64filesize.quadpart)/1024 <<"k "

<< (i64filesizecopy.quadpart - i64filesize.quadpart)/1024/1024 <<"m "

<< (i64filesizecopy.quadpart - i64filesize.quadpart)/1024/1024/1024 <<"g"<

Linux傳輸大檔案(分割傳輸)

1.分拆為多個檔案的命令 cat workspace 2018.tar.gz split b 1g workspace 2018.tar.gz.命令解釋 拆分成1g的小檔案 workspace 2018.tar.gz.是拆分後檔案的字首,預設分拆後檔名稱為workspace 2018.tar.gz....

怎麼遠端傳輸大檔案?

傳統的傳輸方式主要分為 http與ftp。我們常用的郵件傳送就是http的一種,其主要是便捷,簡單。然後很多http 伺服器對鏈結超時 檔案大小等都用種種限制,這主要是因為其最初是為了網頁進行開發設計的一種協議。而ftp是另外一種較為常用的傳輸工具,其優點與http相似,雖然網路頻寬的增加,ftp的...

HTTP 如何傳輸大檔案

瀏覽器在傳送請求時都會帶著 accept encoding 頭欄位,裡面是瀏覽器支援的壓縮格式列表,例如 gzip deflate br 等,這樣伺服器就可以從中選擇一種壓縮演算法,放進 content encoding 響應頭里,再把原資料壓縮後發給瀏覽器。如果壓縮率有 50 那麼 100k 的資...