亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C# > 正文

c#實現斷點續傳功能示例分享

2020-01-24 02:46:30
字體:
來源:轉載
供稿:網友

在了解HTTP斷點續傳的原理之前,讓我們先來了解一下HTTP協議,HTTP協議是一種基于tcp的簡單協議,分為請求和回復兩種。請求協議是由客戶機(瀏覽器)向服務器(WEBSERVER)提交請求時發送報文的協議。回復協議是由服務器(webserver),向客戶機(瀏覽器)回復報文時的協議。請求和回復協議都由頭和體組成。頭和體之間以一行空行為分隔。

以下是一個請求報文與相應的回復報文的例子:

復制代碼 代碼如下:

GET /image/index_r4_c1.jpg HTTP/1.1
Accept: */*
Referer: http://192.168.3.120:8080
Accept-Language: zh-cn
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.0.3705)
Host: 192.168.3.120:8080
Connection: Keep-Alive

HTTP/1.1 200 OK
Server: Microsoft-IIS/5.0
Date: Tue, 24 Jun 2003 05:39:40 GMT
Content-Type: image/jpeg
Accept-Ranges: bytes
Last-Modified: Thu, 23 May 2002 03:05:40 GMT
ETag: "bec48eb862c21:934"
Content-Length: 2827

下面我們就來說說"斷點續傳",顧名思義,斷點續傳就是在上一次下載時斷開的位置開始繼續下載。
在HTTP協議中,可以在請求報文頭中加入Range段,來表示客戶機希望從何處繼續下載。 

比如說從第1024字節開始下載,請求報文如下:

復制代碼 代碼如下:

GET /image/index_r4_c1.jpg HTTP/1.1
Accept: */*
Referer: http://192.168.3.120:8080
Accept-Language: zh-cn
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.0.3705)
Host: 192.168.3.120:8080
Range:bytes=1024-
Connection: Keep-Alive

.NET中的相關類

明白了上面的原理,那么,我們來看看.NET FRAMEWORK中為我們提供了哪些類可以來做這些事。

完成HTTP請求

System.Net.HttpWebRequest

HttpWebRequest 類對 WebRequest 中定義的屬性和方法提供支持,也對使用戶能夠直接與使用 HTTP 的服務器交互的附加屬性和方法提供支持。

HttpWebRequest 將發送到 Internet 資源的公共 HTTP 標頭值公開為屬性,由方法或系統設置。下表包含完整列表??梢詫?Headers 屬性中的其他標頭設置為名稱/值對。但是注意,某些公共標頭被視為受限制的,它們或者直接由 API公開,或者受到系統保護,不能被更改。Range也屬于被保護之列,不過,.NET為開發者提供了更方便的操作,就是 AddRange方法,向請求添加從請求數據的開始處或結束處的特定范圍的字節范圍標頭完成文件訪問

System.IO.FileStream

FileStream 對象支持使用Seek方法對文件進行隨機訪問, Seek 允許將讀取/寫入位置移動到文件中的任意位置。這是通過字節偏移參考點參數完成的。字節偏移量是相對于查找參考點而言的,該參考點可以是基礎文件的開始、當前位置或結尾,分別由SeekOrigin類的三個屬性表示。


了解了.NET提供的相關的類,那么,我們就可以方便的實現了。

代碼如下:

復制代碼 代碼如下:

static void Main(string[] args)
{
string StrFileName="c://aa.zip"; //根據實際情況設置
string StrUrl="http://www.xxxx.cn/xxxxx.zip"; //根據實際情況設置

//打開上次下載的文件或新建文件
long lStartPos =0;
System.IO.FileStream fs;
if (System.IO.File.Exists(StrFileName))
{
fs= System.IO.File.OpenWrite(StrFileName);
lStartPos=fs.Length;
fs.Seek(lStartPos,System.IO.SeekOrigin.Current); //移動文件流中的當前指針
}
else
{
fs = new System.IO.FileStream(StrFileName,System.IO.FileMode.Create);
lStartPos =0;
}

//打開網絡連接
try
{
System.Net.HttpWebRequest request =(System.Net.HttpWebRequest)System.Net.HttpWebRequest.Create(StrUrl);
if ( lStartPos>0)
request.AddRange((int)lStartPos); //設置Range值

//向服務器請求,獲得服務器回應數據流
System.IO.Stream ns= request.GetResponse().GetResponseStream();

byte[] nbytes = new byte[512];
int nReadSize=0;
nReadSize=ns.Read(nbytes,0,512);
while( nReadSize >0)
{
fs.Write(nbytes,0,nReadSize);
nReadSize=ns.Read(nbytes,0,512);
}
fs.Close();
ns.Close();
Console.WriteLine("下載完成");
}
catch(Exception ex)
{
fs.Close();
Console.WriteLine("下載過程中出現錯誤:"+ex.ToString());
}
}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
在线观看日韩www视频免费| 福利视频一区二区| 国产国产精品人在线视| 亚洲一区二区三区乱码aⅴ蜜桃女| 在线观看日韩www视频免费| 91精品久久久久久久久久久久久久| 欧美精品一本久久男人的天堂| 国产亚洲欧洲高清一区| www高清在线视频日韩欧美| 96国产粉嫩美女| 琪琪第一精品导航| 国产欧美日韩丝袜精品一区| 91sao在线观看国产| 国产亚洲精品美女久久久久| 欧美激情在线一区| 九九精品在线视频| 性色av一区二区咪爱| 亚洲视频综合网| 国产亚洲精品美女久久久久| 亚洲图片在区色| 另类图片亚洲另类| 宅男66日本亚洲欧美视频| 91深夜福利视频| 亚洲精品久久久久久下一站| 日韩欧美极品在线观看| 69av在线播放| 92看片淫黄大片看国产片| 欧美在线播放视频| 热99精品只有里视频精品| 国产经典一区二区| 国内精品视频久久| 国产精品第一第二| 日韩亚洲在线观看| 国产脚交av在线一区二区| 国产精品视频99| 国产精品成人观看视频国产奇米| 日韩欧美aⅴ综合网站发布| 日韩欧美成人免费视频| 亚洲欧美另类中文字幕| 国产一区二区三区网站| 这里只有精品视频在线| 日韩最新av在线| 日韩va亚洲va欧洲va国产| 国产精品入口尤物| 亚洲三级 欧美三级| 国产精品影院在线观看| 91在线视频导航| 久久精品国产清自在天天线| 亚洲视频在线播放| 久久久久久亚洲| 成人免费视频97| 一区二区av在线| 成人有码在线播放| 国产免费亚洲高清| 久久久久久一区二区三区| 国产精品免费一区| 国产va免费精品高清在线| 欧美性生交xxxxx久久久| 精品久久久久久中文字幕一区奶水| 精品动漫一区二区三区| 国产成人午夜视频网址| 久久久电影免费观看完整版| 国产日韩欧美视频在线| 亚洲精品www久久久久久广东| 亚洲一级黄色av| 日韩不卡中文字幕| 国产精品com| 久久久久久网址| 亚洲色图狂野欧美| 青青久久av北条麻妃黑人| 亚洲综合社区网| 国产精品成人免费电影| 色青青草原桃花久久综合| 国产精品嫩草影院一区二区| 久久欧美在线电影| 91精品国产91久久久久| 青青久久av北条麻妃黑人| 日韩免费在线观看视频| 欧美午夜精品久久久久久人妖| 国产精品白丝av嫩草影院| 91欧美精品午夜性色福利在线| 成人免费午夜电影| 九九久久国产精品| 亚洲男人的天堂在线| 欧美日韩国产第一页| 国产精品极品美女粉嫩高清在线| 亚洲欧洲一区二区三区久久| 国产精品亚洲欧美导航| 欧美日韩国产一区中文午夜| 美日韩在线视频| 亚洲色图国产精品| 亚洲最大激情中文字幕| 在线视频欧美性高潮| 欧美极品美女视频网站在线观看免费| 国产视频福利一区| 国产日韩欧美视频| 福利视频一区二区| 亚洲无亚洲人成网站77777| 97涩涩爰在线观看亚洲| 亚洲综合成人婷婷小说| 最近2019中文免费高清视频观看www99| 成人黄色在线免费| 最新国产精品拍自在线播放| 精品久久久久久久久久国产| 欧美性猛交xxxx久久久| 亚洲欧美激情另类校园| 色综合久久中文字幕综合网小说| 亚洲精品视频二区| 亚洲性视频网址| 91精品国产91久久久久久久久| 亚洲欧洲视频在线| 正在播放亚洲1区| 久久天堂电影网| 国产欧美最新羞羞视频在线观看| 成人春色激情网| 精品成人国产在线观看男人呻吟| 亚洲美女中文字幕| 亚洲女人被黑人巨大进入al| 国产精品自产拍在线观看中文| 精品国内自产拍在线观看| 国产精品露脸av在线| 亚洲精品网站在线播放gif| 成人高清视频观看www| 亚洲一区二区三区乱码aⅴ蜜桃女| 国产精品99久久久久久www| 91国产视频在线播放| 亚洲精品综合久久中文字幕| 成人网在线视频| 成人h片在线播放免费网站| 中文字幕亚洲欧美一区二区三区| 亚洲国产精品热久久| 久久久精品视频成人| 亚洲第一精品电影| 中文日韩电影网站| 国产精品福利网| 国产精品久久久久久久午夜| 亚洲精品乱码久久久久久按摩观| 国产欧美精品一区二区三区介绍| 欧美日韩另类视频| 中文字幕不卡在线视频极品| 亚洲欧洲在线观看| 欧亚精品中文字幕| 国产欧美一区二区三区在线| 欧美日韩国产一中文字不卡| 日韩中文在线不卡| 亚洲韩国青草视频| 亚洲日本aⅴ片在线观看香蕉| 精品伊人久久97| 欧美精品videossex性护士| 国产精品狼人色视频一区| 亚洲国产日韩欧美在线图片| 日韩一区二区av| 久久精品人人爽| 亚洲四色影视在线观看| 91久久精品国产91久久| 欧美午夜精品久久久久久浪潮| 国产精品99一区| 精品福利在线看| 91国产一区在线| 欧美日韩亚洲视频一区| 欧美亚洲国产视频| 亚洲国产精品久久久久| 国产精品网红直播| 日韩欧美亚洲范冰冰与中字|