最近在寫一個檔案版本管理服務器,服務器用的Linux系統,用epoll +多執行緒 接收大檔案時發現,檔案會被分成好幾個小包發送和接收。 請問大佬們 在服務器端應該怎樣把檔案融合在一起。
uj5u.com熱心網友回復:
一塊塊寫唄~~~uj5u.com熱心網友回復:
自己定義資料包頭唄,就是個結構體,放在你的檔案內容資料前就行,裝檔案名,檔案長度等資訊,然后根據收到的長度和包頭資訊比較,可以把資料全部收完的一個檔案放入寫檔案佇列,
或者收一點寫一點,寫到對應檔案里,
根據實際情況,發送檔案的大小,數量,頻繁程度,網路質量等來選擇。
分包這個是資料鏈路層協議確定的,改不了的,每個包最大 1500位元組,這還包括各層協議的包頭。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/12527.html
標籤:網絡及通訊開發
