如何得到服务器的延时

manbu16 2008-07-14 09:52:52
先看三张图片:



像这样的效果要用VB.NET怎么做呢?
请高手赐教或者给个代码,100分!
...全文
182 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
wuyanteng1 2008-07-15
  • 打赏
  • 举报
回复
帮你顶到解决为止!
skigil 2008-07-15
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 xfjds1987 的回复:]
vb.net
my.computer.network.ping(地址)

你多ping 几次取个平均值吧。
[/Quote]

返回值根本不是数字,而是BOOL,根本不可用
skigil 2008-07-15
  • 打赏
  • 举报
回复
加上一句:
If time(i) = 0 Then
time(i) = 1000
End If
放在For循环中
xfjds1987 2008-07-15
  • 打赏
  • 举报
回复
vb.net
my.computer.network.ping(地址)

你多ping 几次取个平均值吧。
skigil 2008-07-15
  • 打赏
  • 举报
回复
服务器名字放在sf里,对应的IP放在sfs里
skigil 2008-07-15
  • 打赏
  • 举报
回复
Imports System.Net.NetworkInformation

Public Class Form1
Dim sf() As String = {"百度", "新浪", "搜狐", "卡巴斯基"}
Dim sfs() As String = {"www.baidu.com", "www.sina.com.cn", "www.sohu.com", "www.kaspersky.com"}
Dim time(sf.Length) As Integer
Dim loops As Integer = 0
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
For i As Integer = 0 To sf.Length - 1
time(i) = pingClient.Send(sfs(i)).RoundtripTime
Next
Init_ListView()
End Sub

Dim WithEvents pingClient As New Ping()
Private Sub Init_ListView()
With ListView1
Dim wi As Integer = .Width / 4
.Columns.Add("服务器名称", wi, HorizontalAlignment.Center)
.Columns.Add("速度", wi, HorizontalAlignment.Center)
.Columns.Add("状态", wi, HorizontalAlignment.Center)
.Columns.Add("其它", wi, HorizontalAlignment.Center)
.View = View.Details
End With
Dim lvi As ListViewItem
For i As Integer = 0 To sf.Length - 1
lvi = New ListViewItem(sf(i))
If time(i) < 20 Then
lvi.SubItems(0).ForeColor = Color.Green
ElseIf time(i) < 50 Then
lvi.SubItems(0).ForeColor = Color.Yellow
Else
lvi.SubItems(0).ForeColor = Color.Red
End If
If time(i) < 20 Then
lvi.SubItems.Add("速度优")
ElseIf time(i) < 50 Then
lvi.SubItems.Add("速度不错")
ElseIf time(i) < 100 Then
lvi.SubItems.Add("速度有点差了")
Else
lvi.SubItems.Add("玩不了网游")
End If
lvi.SubItems.Add(time(i))
ListView1.Items.Add(lvi)
Next
End Sub
End Class


代码交给你,窗体中放一个ListView就行了
kbryant 2008-07-15
  • 打赏
  • 举报
回复
帮你顶到解决为止!
twtetg 2008-07-15
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 wuyanteng1 的回复:]
帮你顶到解决为止!
[/Quote]
烈火焚身 2008-07-15
  • 打赏
  • 举报
回复
[Quote=引用楼主 manbu16 的帖子:]
先看三张图片:



像这样的效果要用VB.NET怎么做呢?
请高手赐教或者给个代码,100分!
[/Quote]


发送PING
根据返回的数据
条件判断
根据速度
manbu16 2008-07-15
  • 打赏
  • 举报
回复
谢谢这么多好心人啊,我实践一下哦
yanlongwuhui 2008-07-15
  • 打赏
  • 举报
回复
Public Function CmdExcute(ByVal ExcuteCommand As String, ByRef ErrorMessage As String) As String
Dim strRtn As String ' 返回值
Dim myProcess As System.Diagnostics.Process = New System.Diagnostics.Process
Dim bOk As Boolean
myProcess.StartInfo.FileName = "cmd"
myProcess.StartInfo.UseShellExecute = False
myProcess.StartInfo.RedirectStandardInput = True
myProcess.StartInfo.RedirectStandardOutput = True
myProcess.StartInfo.RedirectStandardError = True
myProcess.StartInfo.CreateNoWindow = True
Try
myProcess.Start()
myProcess.StandardInput.WriteLine(ExcuteCommand)
myProcess.StandardInput.WriteLine("exit")
ErrorMessage = myProcess.StandardError.ReadToEnd()
If ErrorMessage = "" Then
strRtn = myProcess.StandardOutput.ReadToEnd()
End If
myProcess.WaitForExit()
myProcess.Close()
Catch ex As Exception
sReturn = ex.Message
End Try
myProcess.Dispose()
Return strRtn
End Function


Dim strRtn As String
Dim strError As String
strRtn = CmdExcute("ping www.163.com", strError)
If strError = "" Then
Dim intPos As Integer
Dim strFindString As String
strFindString = "Average = "
intPos = strRtn.IndexOf(strFindString)
If intPos > 0 Then
strRtn = strRtn.Substring(intPos + strFindString.Length)
End If
intPos = strRtn.IndexOf("ms")
If intPos > 0 Then
strRtn = strRtn.Substring(0, intPos)
End If
End If
MsgBox(strRtn)
polarmirror 2008-07-14
  • 打赏
  • 举报
回复
跟PING指令返回那个结果一样,感觉上

16,717

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧