斷點續傳功能

2021-07-02 07:22:43 字數 2283 閱讀 5387

#define kreceivetotal @"receivetotal"

#define ktotal @"total"

@inte***ce viewcontroller ()

@end

/**二、斷點續傳的實現思路:

http協議的請求頭的設定:

range : bytes=0-499   表示頭500個位元組

range : bytes=500-999 表示第二個500位元組

range : bytes=-500    表示最後500個位元組

range : bytes=500-    表示500位元組以後的範圍

range : bytes=0-0,-1  第乙個和最後乙個位元組

3. 續傳寫入檔案時,總是從檔案末尾追加寫入檔案

*///緩衝目錄  1.png

//目標目錄  1.png

@implementation viewcontroller

- (void)viewdidload

}- (ibaction)startaction:(id)sender

//傳送非同步請求

_connection = [nsurlconnection connectionwithrequest:request delegate:self];

//建立檔案

//取得字串的url

nsstring *urlstring = url.absolutestring;

//取得url的最後一部分

nsstring *filename = [urlstring lastpathcomponent];

//檔案路徑

//判斷檔案是否存在,如果不存在,再建立

if (![[nsfilemanager defaultmanager] fileexistsatpath:_filepath])

}- (ibaction)pauseaction:(id)sender

#pragma mark - nsurlconnection delegate

//1.服務響應

}//2.資料的傳輸

- (void)connection:(nsurlconnection *)connection didreceivedata:(nsdata *)data

}//3.資料傳輸完成

- (void)connectiondidfinishloading:(nsurlconnection *)connection

nsfilemanager *filemanager = [nsfilemanager defaultmanager];

nsstring *filename = [_filepath lastpathcomponent];

//判斷目標檔案是否存在,如果存在,就刪除掉

if ([filemanager fileexistsatpath:targetfile])

//剪下檔案,注意:剪下不能將已存在的檔案覆蓋

[filemanager moveitematpath:_filepath topath:targetfile error:nil];

nsuserdefaults *userdefatuls = [nsuserdefaults standarduserdefaults];

[userdefatuls setobject:@(0) forkey:kreceivetotal];

[userdefatuls setobject:@(0) forkey:ktotal];

//將資料同步寫入檔案

[userdefatuls synchronize];

receivetotal = 0;

total = 0;

}//將資料追加到檔案末尾

return;

}// 使用nsfilehandle寫檔案,此檔案必須已經建立,nsfilehandle是不會建立檔案的

nsfilehandle *filehandle = [nsfilehandle filehandleforwritingatpath:_filepath];

//將檔案的寫入點,定位到檔案的末尾

[filehandle seektoendoffile];

[filehandle closefile];

}@end

Windows自帶區域網斷點續傳功能

其實smb共享支援斷電續傳的,就這個命令 copy z server folder file.ext d downloads file.ext 1 使用copy 命令複製檔案,首先會在目標位置建立乙個和原始檔大小相同的檔案,然後進行填充 2 在複製過程中斷開網路或者關閉遠端主機,copy z會停止複...

C 技術分享 基於socket的斷點續傳功能

最近開發了乙個異地災備傳輸工具,每週從廣州伺服器同步5g大小的資料庫備份檔案到北京伺服器。第乙個版本的傳輸工具開發得很簡單,兩個window服務,乙個負責傳送,另乙個負責接收,利用socket建立tcp鏈結,在測試伺服器上傳輸10g大小的檔案沒有問題。但部署到生產環境之後,每次傳輸了3g左右的資料就...

HTTP 斷點續傳

客戶端請求域 range 格式如下例子 第乙個500位元組 位元組偏移量0 499,包括0和499 range bytes 0 499 第二個500位元組 位元組偏移量500 999,包括500和999 range bytes 500 999 最後500位元組 位元組偏移量9500 9999,包括9...