天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

用C#實(shí)現(xiàn)HTTP協(xié)議下的多線程文件傳輸

  很多人都有過(guò)使用網(wǎng)絡(luò)螞蟻或網(wǎng)絡(luò)快車(chē)軟件下載互聯(lián)網(wǎng)文件的經(jīng)歷,這些軟件的使用可以大大加速互聯(lián)網(wǎng)上文件的傳輸速度,減少文件傳輸?shù)臅r(shí)間。這些軟件為什么有如此大的魔力呢?其主要原因是這些軟件都采用了多線程下載和斷點(diǎn)續(xù)傳技術(shù)。如果我們自己來(lái)編寫(xiě)一個(gè)類(lèi)似這樣的程序,也能夠快速的在互聯(lián)網(wǎng)上下載文件,那一定是非常愉快的事情。下面我就講一講如何利用C#語(yǔ)言編寫(xiě)一個(gè)支持多線程下載文件的程序,你會(huì)看到利用C#語(yǔ)言編寫(xiě)網(wǎng)絡(luò)應(yīng)程序是多么的容易,從中也能體會(huì)到C#語(yǔ)言中強(qiáng)大的網(wǎng)絡(luò)功能。

  首先介紹一下HTTP協(xié)議,HTTP亦即Hpyer Text Transfer Protocal的縮寫(xiě),它是現(xiàn)代互聯(lián)網(wǎng)上最重要的一種網(wǎng)絡(luò)協(xié)議,超文本傳輸協(xié)議位于TCP/IP協(xié)議的應(yīng)用層,是一個(gè)面向無(wú)連接、簡(jiǎn)單、快速的C/S結(jié)構(gòu)的協(xié)議。HTTP的工作過(guò)程大體上分連接、請(qǐng)求、響應(yīng)和斷開(kāi)連接四個(gè)步驟。

  C#語(yǔ)言對(duì)HTTP協(xié)議提供了良好的支持,在.NET類(lèi)庫(kù)中提供了WebRequest和WebResponse類(lèi),這兩個(gè)類(lèi)都包含在System.NET命名空間中,利用這兩個(gè)類(lèi)可以實(shí)現(xiàn)很多高級(jí)的網(wǎng)絡(luò)功能,本文中多線程文件下載就是利用這兩個(gè)類(lèi)實(shí)現(xiàn)的。 WebRequest和WebResponse都是抽象基類(lèi),因此在程序中不能直接作為對(duì)象使用,必須被繼承,實(shí)際使用中,可根據(jù)URI參數(shù)中的URI前綴選用它們合適的子類(lèi),對(duì)于HTTP這類(lèi)URI, HttpWebRequest和HttpWebResponse類(lèi)可以用于處理客戶程序同WEB服務(wù)器之間的HTTP通訊。

  HttpWebRequest類(lèi)實(shí)現(xiàn)了很多通過(guò)HTTP訪問(wèn)WEB服務(wù)器上文件的高級(jí)功能。HttpWebRequest類(lèi)對(duì)WebRequest中定義的屬性和方法提供支持,HttpWebRequest將發(fā)送到InterNET資源的公共HTTP標(biāo)頭的值公開(kāi)為屬性,由方法或系統(tǒng)設(shè)置,常用的由屬性或方法設(shè)置的HTTP標(biāo)頭為:接受--由Accept屬性設(shè)置;連接 -- 由Connection屬性和KeepAlive屬性設(shè)置; Content-Length -- 由ContentLength屬性設(shè)置;Content-Type -- 由ContentType屬性設(shè)置;范圍 -- 由AddRange方法設(shè)置。實(shí)際使用中是將標(biāo)頭信息正確設(shè)置后,傳遞到Web服務(wù)器,Web服務(wù)器根據(jù)要求作出回應(yīng)。

  HttpWebResponse類(lèi)繼承自WebResponse類(lèi),專(zhuān)門(mén)處理從Web服務(wù)器返回的HTTP響應(yīng),這個(gè)類(lèi)實(shí)現(xiàn)了很多方法,具有很多屬性,可以全面處理接收到的互聯(lián)網(wǎng)信息。在HttpWebResponse類(lèi)中,對(duì)于大多數(shù)通用的HTTP標(biāo)頭字段,都有獨(dú)立的屬性與其對(duì)應(yīng),程序員可以通過(guò)這些屬性方便的訪問(wèn)位于HTTP接收?qǐng)?bào)文標(biāo)頭字段中的信息,本例中用到的HttpWebResponse類(lèi)屬性為:ContentLength 即接收內(nèi)容的長(zhǎng)度。

  有了以上的了解后,下面看看這兩個(gè)類(lèi)的用法,要?jiǎng)?chuàng)建HttpWebRequest對(duì)象,不要直接使用HttpWebRequest的構(gòu)造函數(shù),而要使用WebRequest.Create方法初始化一個(gè)HttpWebRequest實(shí)例,如:

  HttpWebRequest hwr=(HttpWebRequest)WebRequest.Create(http://www.163.com/);

  創(chuàng)建了這個(gè)對(duì)象后,就可以通過(guò)HttpWebRequest屬性,設(shè)置很多HTTP標(biāo)頭字段的內(nèi)容,如hwr.AddRange(100,1000); 設(shè)置接收對(duì)象的范圍為100-1000字節(jié)。

  HttpWebReques對(duì)象使用GetResponse()方法時(shí),會(huì)返回一個(gè)HttpWebResponse對(duì)象,為提出HTTP返回報(bào)文信息,需要使用HttpWebResponse的GetResponseStream()方法,該方法返回一個(gè)Stream對(duì)象,可以讀取HTTP返回的報(bào)文,如:首先定義一個(gè)Stream對(duì)象 public System.IO.Stream ns; 然后 ns=hwr.GetResponse ().GetResponseStream (); 即可創(chuàng)建Stream對(duì)象。

  有了以上的準(zhǔn)備知識(shí)后下面開(kāi)始設(shè)計(jì)我們的多線程互聯(lián)網(wǎng)文件的下載程序,首先打開(kāi)Visual Studio.NET集成開(kāi)發(fā)環(huán)境,選擇文件、新建、項(xiàng)目,然后選擇Visual C#項(xiàng)目,在向?qū)в疫吜斜砜蛑羞x中Windows應(yīng)用程序,輸入項(xiàng)目名稱(chēng),如本例為:httpftp, 然后選擇確定按鈕,向?qū)ё詣?dòng)生成了一個(gè)Windows應(yīng)用程序項(xiàng)目。首先打開(kāi)窗口設(shè)計(jì)器設(shè)計(jì)應(yīng)用程序窗口,增加如下控件:

  一個(gè)列表框 listBox1,  三個(gè)文本標(biāo)簽 label1-label3, 三個(gè)文本框 textBox1-textBox3, 一個(gè)開(kāi)始接收按鈕 button1。

  控件定義代碼是:

public System.Windows.Forms.ListBox listBox1;
private
System.Windows.Forms.Label label1;
private
System.Windows.Forms.TextBox textBox1
private System.Windows.Forms.Button button1;
private
System.Windows.Forms.Label label2;
private
System.Windows.Forms.TextBox textBox2;
private
System.Windows.Forms.Label label3;
private
System.Windows.Forms.TextBox textBox3;
private
System.Windows.Forms.Label label4;
private
System.Windows.Forms.TextBox textBox4;

NET技術(shù)用C#實(shí)現(xiàn)HTTP協(xié)議下的多線程文件傳輸,轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 无码人妻精品一区二区蜜桃色 | 俄罗斯18xv在线观看 | 久久视频精品38在线播放 | 黄色网址在线播放 | 变形金刚7免费观看完整 | 国产超碰精久久久久久无码AV | 精品一卡2卡三卡4卡乱码精品视频 | 亚洲欧美日韩高清中文在线 | 欧美伊人久久大香线蕉综合69 | 99热这里只有精品 | 看全色黄大色大片免费久黄久 | 午夜福利小视频400 午夜福利网国产A | 国产日韩高清一区二区三区 | 茎身铃口调教 | 女子叉开腿让男子桶免费软件 | 漂亮的保姆3中文版完整版 漂亮的保姆3集电影免费观看中文 | 亚洲中文字幕无码一久久区 | 色戒未删减版在线观看完整 | 暖暖在线观看播放视频 | 囯产精品麻豆巨作久久 | 久久sese| 色窝窝777欧美午夜精品影院 | 免费观看高清黄页网址大全 | WWW国产精品内射熟女 | 九九在线中文字幕无码 | 老师你下面好紧夹死了 | 人人模人人干 | 向日葵视频app下载18岁以下勿看 | 亚洲欧美一区二区久久 | 午夜办公室在线观看高清电影 | 黄 色 网 站 免 费 涩涩屋 | 免费女性裸身照无遮挡网站 | 天天影视香色欲综合网 | 亚洲国产在线精品国自产拍五月 | 亚洲AV久久无码精品国产网站 | 中国老太60old mantv | 69亞洲亂人倫AV精品發布 | 亚洲视频一区在线 | 国产99视频精品一区 | 免费在线观看国产 | 国产精品18久久久久久欧美 |