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

首頁 > 學院 > 開發設計 > 正文

用.net和協議快速開發下載軟件

2019-11-18 12:04:41
字體:
來源:轉載
供稿:網友

  在互連網廣泛應用的今天,將有用的信息下載到本地是一件很普遍的事。當然,這個過程我們可以通過許多下載工具實現。目前的這些下載工具,絕大多數都是使用http協議完成的。雖然使用http編寫下載工具是一種很簡單的方法,但美中不足的是開發人員必須要結合winsock并編寫大量的代碼才可以完成。因為http是一個工業標準,你不可以自定義這個標準,唯一的辦法只有服從。而且由于用到winsock技術,所以對開發人員的要求也很高。
  
  以前我曾經用vb6編寫了一個下載程序,在程序中使用了vb6中提供的winsock activeX控件和http協議來實現最簡單的下載功能。這個程序的長度有200行。
  
  今天當我翻開.net框架時,我興奮了,應為要編寫一個下載軟件比以前方便、快捷了,于是我忍不住希望有人和我分享這種愉悅的心情。我真的是為.net叫好,他能使你從乏味的工作中解脫出來!
  
  下面就讓我們一下這種技術為什么如此讓人興奮。
  
  在.net中編寫快速簡單的下載和上傳的代碼只要調用WebClient類就可以了。對于簡單請求和響應事務,WebClient類提供將數據上載到Internet服務器或從Internet服務器下載數據的最簡便的方法。WebClient提供上載和下載文件、發送和接收流以及將數據緩沖區發送到服務器并接收響應的方法。這樣,事情就簡單多了。
  
  了解了這個技術后,我們就可以編寫下載和上傳的程序了。
  
  先添加timer,textbox,button,savefiledialog和4個label控件,savefiledialog用來保存下載的文件,timen用來和一個label控件結合,顯示已經下載了多少。Textbox用來接受輸入的url地址。將timer1的屬性interval定為1000,即每一秒啟動一次Timer1_Tick事件。將label1.text定為http://。
  
  代碼如下:
  Imports System.Net'到入命名空間
  Public Class Form1
  Inherits System.Windows.Forms.Form
  Public Shared fpath As String
  Dim fsize As Long
  PRivate Sub Button1_Click(ByVal sender As System.Object, ByVal e As
  System.EventArgs) Handles Button1.Click
  Dim urld As String
  Dim i As Integer
  Dim dfile As New WebClient()'實例化WebClient類
  SaveFileDialog1.ShowDialog()
  fpath = SaveFileDialog1.FileName
  Label3.Text = "文件保存在" & fpath
  urld = Label1.Text + TextBox1.Text
  Timer1.Enabled = True
  dfile.DownloadFile(urld, fpath)'下載指定nrl地址的文件
  Timer1.Enabled = False
  End Sub
  Private Sub Timer1_Tick(ByVal sender As Object,
  ByVal e As System.EventArgs) Handles Timer1.Tick
  Me.Refresh()'用來刷新窗口
  Dim th2 As New th1()
  Dim tt As New System.Threading.Thread(AddressOf th2.timeth) 實例化線程類
  tt.Start()'啟動線程
  Label2.Text = th2.downk'顯示下載文件的大小
  '進行計算下載速度
  Static k As Integer
  Dim p,downspeed
  p = k
  k = p + 1
  p = k
  Dim fileinfo As New System.IO.FileInfo(form.fpath)
  downspeed = fileinfo.Length()
  downspeed= downspeed/p
  label4.textbox= "當前下載速度是"& downspeed & "k/m"
  End Sub
  End Class
  Public Class th1
  Public Shared downk As String
  Dim form As New Form1()
  Dim fileinfo As New System.IO.FileInfo(form.fpath)
  Dim fsize As Long
  Public Sub timeth()
  If fileinfo.Exists = True Then
  fsize = fileinfo.Length()
  downk = "以下載文件" & fsize & "k"
  End If
  End Sub
  End Class
  
  你看懂上面的代碼了嗎?別急,讓我來解釋一下。
  
  ● 第一個要解釋的是線程,簡單的說就是在exe文件運行的時候計算機會為他創建一個進程,將這個進程分成若個塊,每塊完成不同的任務,這些塊就是線程(更多的知識請見相關照料)。那為什么我會在Timer1_Tick事件(每過一段時間就執行其中的代碼)中使用線程尼?因為我發現在調試的時候WebClient類占有的資源校大(這可能是net自己的原因),在運行時使整個窗口的顯示不完整,使用了線程和Me.Refresh()語句后情況有所好轉(在net中要創建線程的方法見msdn)。
  
  ● 另一個要解釋的是System.IO框架中的FileInfo類,我用他來讀已經下載的文件大小。在程序中我沒有獲取要下載文件的大小,換句話說就是只有等下載完成后才可以知道文件到底用多大。這時您或許要問,難道net中沒提供相關的類嗎?我花了5個小時,將net中的所有類打開,一一查看,終于找了到相關的類。這兩個類就是WebRequest和WebResponse(這兩個類的使用見msdn),即它們的子代類因為這兩個類的使用比WebClient復雜(假如你要寫更復雜的下載程序就要使用它們)但是假如你要獲得服務器上你要下載的文件的大小,你就必須使用它們。下面我就寫一個簡單的代碼,來獲得其服務器上你要下載的文件的大?。?br />  
  Private Sub Form1_Click(ByVal sender As Object,
  ByVal e As System.EventArgs) Handles MyBase.Click
  Dim th As WebRequest =
  WebRequest.Create("http://download2.ssreader.com/download/SSR362b5B(0802).exe")
  '這個站是超星的網站,SSR362b5B(0802).exe文件是超星圖書閱讀器
  Dim w As WebResponse = th.GetResponse()
  Dim j As Long
  j = w.ContentLength().ToString'獲得文件大小
  Debug.WriteLine(j)
  End Sub
  
  ● 對于無法獲得的下載速度,我們可以通過計算來獲得。計算的思路是,通過定義一個靜態變量,使他每一秒加一,就可以知道下載了多少秒,在從downspeed = fileinfo.Length()語句得到下載的這段時間文件的大小,用downspeed除以秒就可以得到當前的下載速度了,請注重這只是一個估略的值。假如你想每隔n秒才計算的話,設置p=k* timer1.interval/1000
  
  ● 最后要說的是,你還可以調用wininte.dll這個動態庫中的函數,這個庫是專為編寫網絡程序提供的。使用它你也可以編寫下載和上傳的程序。當然你也可以使用http來寫。
  
  在結束前向大家推薦一本用vb和協議開發的書,《visual basic 網絡高級編程》是人民郵電出版社出的,isbn號是7-115-09171-4/tp.2122,60元汪曉平,鐘軍寫的。這本書具體講了用vb和http,FTP,smtp,nntp,telnt協議開發網絡程序的知識。
  
  看了以上的代碼你是否覺得編寫下載軟件以不是什么高手才可以完成的任務了吧!那就動手吧!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲成人久久电影| 精品久久国产精品| 中日韩美女免费视频网址在线观看| 欧美国产日韩一区二区三区| 日韩精品视频中文在线观看| 国产女人精品视频| 伊人青青综合网站| 国产成人+综合亚洲+天堂| 日韩精品视频三区| 亚洲深夜福利网站| 亚洲女在线观看| 欧美精品精品精品精品免费| 国产区亚洲区欧美区| 超碰91人人草人人干| 国产精品对白刺激| 精品视频—区二区三区免费| 欧美综合一区第一页| 欧美性xxxx极品hd满灌| 久久精品中文字幕电影| 亚洲aⅴ男人的天堂在线观看| 国产精品国产三级国产aⅴ9色| www日韩欧美| 精品偷拍一区二区三区在线看| 日韩欧美在线播放| 欧美与黑人午夜性猛交久久久| 国产专区精品视频| 成人美女av在线直播| 日韩高清电影好看的电视剧电影| 欧美激情精品久久久久久变态| 欧美激情精品久久久久久久变态| 国产在线观看精品一区二区三区| 国产在线视频一区| 中日韩美女免费视频网站在线观看| 欧美中文字幕视频在线观看| 亚洲午夜av久久乱码| 国产欧美精品xxxx另类| 欧美午夜精品久久久久久久| 日韩精品中文字幕有码专区| 国产精品r级在线| 精品国内自产拍在线观看| 亚洲国产成人av在线| 欧美最顶级的aⅴ艳星| 亚洲人精选亚洲人成在线| 国产精品日日做人人爱| 日本一区二区三区在线播放| 国产精品你懂得| 国产综合在线观看视频| 亚洲欧美国产日韩天堂区| 久久久久国色av免费观看性色| 综合国产在线视频| 亚洲精品美女在线观看播放| 欧美精品久久久久久久免费观看| 久久这里只有精品99| 欧美激情第三页| 性色av一区二区三区免费| 成人黄色免费网站在线观看| 国产精品av在线播放| 中文字幕精品久久| 成人春色激情网| 亚洲激情在线视频| 国产精品一区二区久久精品| 国产97在线|亚洲| 青青草成人在线| 久久精品99久久久香蕉| 欧美黑人性生活视频| 国产精品爱久久久久久久| 国产亚洲成精品久久| 精品女厕一区二区三区| 国产精品免费视频xxxx| 亚洲自拍av在线| 久久久久中文字幕2018| 精品美女久久久久久免费| 色99之美女主播在线视频| 九九精品视频在线| 欧美日韩一区二区三区| 欧美综合国产精品久久丁香| 91老司机在线| 久久精品国产亚洲| 亚洲a级在线观看| 91精品免费久久久久久久久| 中文字幕日韩有码| 国产丝袜一区二区三区| 国产精品美女久久| 欧美日韩成人黄色| 亚洲国产日韩欧美在线动漫| 国产精品极品尤物在线观看| 清纯唯美日韩制服另类| 成人亲热视频网站| 国产精品91久久久| 久久天天躁夜夜躁狠狠躁2022| 国产精品亚洲一区二区三区| 高清一区二区三区四区五区| 国产黑人绿帽在线第一区| 在线观看久久av| 8x海外华人永久免费日韩内陆视频| 日韩精品日韩在线观看| 亚洲久久久久久久久久久| 欧美有码在线观看| 韩国视频理论视频久久| 亚洲色图av在线| 国产成人鲁鲁免费视频a| 久久偷看各类女兵18女厕嘘嘘| 在线午夜精品自拍| 国产精品流白浆视频| 欧美又大粗又爽又黄大片视频| 91久久精品日日躁夜夜躁国产| 亚洲欧美中文字幕在线一区| 亚洲精品第一页| 日韩精品视频免费专区在线播放| 欧美性在线视频| 一区二区亚洲欧洲国产日韩| 亚洲激情电影中文字幕| 国产精品丝袜视频| 亚洲自拍偷拍福利| 亚洲a级在线观看| 日韩欧美中文免费| 日韩在线观看免费高清| 国语自产在线不卡| 国产亚洲精品美女| 国产亚洲欧美日韩一区二区| 日韩欧美大尺度| 国产精品wwww| 91精品久久久久久久久久久久久久| 国产综合久久久久| 国产精品久久久久免费a∨大胸| 国产精品久久婷婷六月丁香| 精品视频在线播放色网色视频| 国产精品自拍偷拍| 国产一区二区视频在线观看| 在线观看日韩av| 日韩成人高清在线| 26uuu另类亚洲欧美日本一| 91av在线免费观看| 日韩中文在线中文网在线观看| 91成人在线视频| 国产91在线高潮白浆在线观看| 亚洲精品视频免费在线观看| 久久夜色精品国产亚洲aⅴ| 欧美成人午夜激情| 欧美在线不卡区| 国产成人精品免高潮费视频| 不用播放器成人网| 精品一区二区电影| 国产精品男人爽免费视频1| 久久久精品在线观看| 日韩电影免费在线观看| 日韩久久午夜影院| 福利视频导航一区| 成人a视频在线观看| 亚洲aⅴ男人的天堂在线观看| 日韩一二三在线视频播| 欧美性xxxx极品hd欧美风情| 国产日韩欧美视频在线| 韩国国内大量揄拍精品视频| 亚洲视频在线看| 亚洲国产精品久久久久秋霞不卡| 成人免费看吃奶视频网站| 日韩精品高清视频| 国产精品自拍偷拍| 日韩中文字幕第一页| 欧美国产一区二区三区| 美女扒开尿口让男人操亚洲视频网站| 欧美乱大交做爰xxxⅹ性3| 日本精品视频网站|