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

用C#實現HTTP協議下的多線程文件傳輸

  很多人都有過使用網絡螞蟻或網絡快車軟件下載互聯網文件的經歷,這些軟件的使用可以大大加速互聯網上文件的傳輸速度,減少文件傳輸的時間。這些軟件為什么有如此大的魔力呢?其主要原因是這些軟件都采用了多線程下載和斷點續傳技術。如果我們自己來編寫一個類似這樣的程序,也能夠快速的在互聯網上下載文件,那一定是非常愉快的事情。下面我就講一講如何利用C#語言編寫一個支持多線程下載文件的程序,你會看到利用C#語言編寫網絡應程序是多么的容易,從中也能體會到C#語言中強大的網絡功能。

  首先介紹一下HTTP協議,HTTP亦即Hpyer Text Transfer Protocal的縮寫,它是現代互聯網上最重要的一種網絡協議,超文本傳輸協議位于TCP/IP協議的應用層,是一個面向無連接、簡單、快速的C/S結構的協議。HTTP的工作過程大體上分連接、請求、響應和斷開連接四個步驟。

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

  HttpWebRequest類實現了很多通過HTTP訪問WEB服務器上文件的高級功能。HttpWebRequest類對WebRequest中定義的屬性和方法提供支持,HttpWebRequest將發送到InterNET資源的公共HTTP標頭的值公開為屬性,由方法或系統設置,常用的由屬性或方法設置的HTTP標頭為:接受--由Accept屬性設置;連接 -- 由Connection屬性和KeepAlive屬性設置; Content-Length -- 由ContentLength屬性設置;Content-Type -- 由ContentType屬性設置;范圍 -- 由AddRange方法設置。實際使用中是將標頭信息正確設置后,傳遞到Web服務器,Web服務器根據要求作出回應。

  HttpWebResponse類繼承自WebResponse類,專門處理從Web服務器返回的HTTP響應,這個類實現了很多方法,具有很多屬性,可以全面處理接收到的互聯網信息。在HttpWebResponse類中,對于大多數通用的HTTP標頭字段,都有獨立的屬性與其對應,程序員可以通過這些屬性方便的訪問位于HTTP接收報文標頭字段中的信息,本例中用到的HttpWebResponse類屬性為:ContentLength 即接收內容的長度。

  有了以上的了解后,下面看看這兩個類的用法,要創建HttpWebRequest對象,不要直接使用HttpWebRequest的構造函數,而要使用WebRequest.Create方法初始化一個HttpWebRequest實例,如:

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

  創建了這個對象后,就可以通過HttpWebRequest屬性,設置很多HTTP標頭字段的內容,如hwr.AddRange(100,1000); 設置接收對象的范圍為100-1000字節。

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

  有了以上的準備知識后下面開始設計我們的多線程互聯網文件的下載程序,首先打開Visual Studio.NET集成開發環境,選擇文件、新建、項目,然后選擇Visual C#項目,在向導右邊列表框中選中Windows應用程序,輸入項目名稱,如本例為:httpftp, 然后選擇確定按鈕,向導自動生成了一個Windows應用程序項目。首先打開窗口設計器設計應用程序窗口,增加如下控件:

  一個列表框 listBox1,  三個文本標簽 label1-label3, 三個文本框 textBox1-textBox3, 一個開始接收按鈕 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技術用C#實現HTTP協議下的多線程文件傳輸,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 国产高清在线露脸一区 | 亚洲性夜色噜噜噜网站2258KK | 久久视频这里只精品99热在线 | 亚洲偷自拍精品视频在线观看 | 噜噜噜狠狠夜夜躁精品 | 国产成人精品综合在线 | 恋夜秀场支持安卓版全部视频国产 | 极品虎白在线观看 | 老人洗澡自拍xxx互摸 | 欧美黄色xxx | 护士被老头边摸边吃奶的视频 | 欧美日韩亚洲中字二区 | 精品四虎国产在免费观看 | 麻生希第一部快播 | 欧美激情视频在线观看一区二区三区 | 啪啪激情婷婷久久婷婷色五月 | 99精品国产电影 | 亚洲AV无码一区二区色情蜜芽 | 婷婷激情综合色五月久久竹菊影视 | 亚洲视频不卡 | 日日啪无需播放器 | 久久国产亚洲精品AV麻豆 | 国产成人拍精品免费视频爱情岛 | 国产学生在线播放精品视频 | 伊人网中文字幕 | 免费看大黄高清网站视频在线 | 年轻的搜子8中字在线观看 年轻的朋友4在线看中文字幕 | 亚洲成人mv| 欧美日韩黄色 | 亚洲日韩精品AV中文字幕 | sao虎影院桃红视频在线观看 | 夜色福利院在线看 | 伊人国产在线视频 | 2021全国精品卡一卡二 | 亚洲视频网站欧美视频网站 | 国产在线一区二区AV视频 | 成人免费精品视频 | 校花娇喘呻吟校长陈若雪视频 | 国产精品人成在线播放新网站 | 精品亚洲一区二区在线播放 | 动漫美女搞鸡 |