2013-10-17 130 views
-2

我想借助定時器在標籤中顯示Internet連接速度。我寫道:如何檢查網絡連接速度

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick 
    Dim myNA() As NetworkInterface = NetworkInterface.GetAllNetworkInterfaces 

    lblConnectStatus.Text = "NET CONNECTION SPEED : " & myNA(0).Speed/1000000 & " Kbps." 
End Sub 

這顯示7.2 Kbps。在標籤中並始終保持不變。 任何人都可以幫助..

+0

我編輯了你的標題。請參閱:「[應該在其標題中包含」標籤「](http://meta.stackexchange.com/questions/19190/)」,其中的共識是「不,他們不應該」。 –

+1

您爲什麼認爲界面的速度會隨着時間而改變。如果我有一個連接到GBit交換機的GBit NIC,它將始終具有1 GBit的「速度」。如果您的Nic連接到路由器並且路由器連接到「互聯網」,您當然會讀到路由器的連接速度,而不是路由器連接到互聯網的速度。 – igrimpe

+0

當我在我的調制解調器統計數據中檢查網速時,它的圖表顯示出大的波動,那爲什麼不用我的代碼? – Dev

回答

1

你將不得不在互聯網上有一些你可以真正下載並使用數學來確定需要多長時間的東西。

有些方法可以做到這一點,但功能越低(獲取數據)就越精確。 IE瀏覽器,如果你使用類似瀏覽器控件的東西,你的結果將會很低,如果甚至是可以修改的,因爲你不知道你下載的確切字節數。

最簡單的可能是使用像My.Computer.Network.DownloadFile()(簡單,但不是最準確的)下載一個著名的大文件,如PDF,並一次通過服用點是這樣的:

dim dStart as DateTime = Now 
...Download Code 
dim ts as TimeSpan = Now.Subtract(dStart) 

然後你可以採取您的文件大小,下載時間,以確定速度。

+0

順便說一句,我喜歡使用WebService,我可以問我想要的字節數,然後時間需要多長時間。然後,我可以在1秒鐘內下載我可以下載的字節數,並提出相當準確的速度。但是,這確實需要您構建和託管自己的Web服務。 – Steve

-2

添加以下控件:

  • Webbrowser1
  • Button1的,文本= 「獲取網絡速度」
  • 的Label1 = 「0字節每秒」
文本

程序中的這個代碼粘貼

Dim t a datetime 
Sub bclk handles button1.click 
    Webbrowser1.navigate("stackoverflow.com") 
    T= now 
End sub 

Sub wbdoccomplete handles webbeowser1.documentcomplete 
    Dim tspan =now.subtract(t) 
    Dim speed as double = (webbrowser1.      Documenttext.length/tspan.totalseconds) 
    Label1.text = speed & " Bytes per second" 
End sub 
+0

使用定時器來測量時間?大不走。定時器的interval = 1無論如何都不合理,因爲最小分辨率接近15-16毫秒(或更差),但從不「確切」。 – igrimpe

+0

@igrimpe,我做了一個編輯。現在的代碼如何? – farizrahman4u

+0

您仍然使用'計時器'來測量時間,這是沒有意義的,你仍然有一個不切實際的時間間隔,你依靠在UI線程中觸發的事件,同時你使用阻塞呼叫,你不單獨測量下載速度,還有DNS解析等等。 – igrimpe