代码改变世界

C# Ping类的例子,可用于测试网络,主机响应时间等。

2011-12-02 22:28  Andrew.Wangxu  阅读(2270)  评论(0编辑  收藏  举报

 

该例子为利用Ping类检测与主机之间的通信是否正常。。延迟多少毫秒等。。

完整代码如下:

引入命名空间:

using System.Net.NetworkInformation; 

 

完整代码:

namespace PingExample  
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void btn_StartPing_Click(object sender, EventArgs e)
{
this.lst_PingResult.Items.Clear();
//远程服务器IP
string ipStr = txt_IPAddress.Text.ToString().Trim();
//构造Ping实例
Ping pingSender = new Ping();
//Ping 选项设置
PingOptions options = new PingOptions();
options.DontFragment = true;
//测试数据
string data = "test data abcabc";
byte[] buffer = Encoding.ASCII.GetBytes(data);
//设置超时时间
int timeout = 120;
//调用同步 send 方法发送数据,将返回结果保存至PingReply实例
PingReply reply = pingSender.Send(ipStr, timeout, buffer, options);
if (reply.Status == IPStatus.Success)
{
lst_PingResult.Items.Add("答复的主机地址:" + reply.Address.ToString());
lst_PingResult.Items.Add("往返时间:" + reply.RoundtripTime);
lst_PingResult.Items.Add("生存时间(TTL):" + reply.Options.Ttl);
lst_PingResult.Items.Add("是否控制数据包的分段:" + reply.Options.DontFragment);
lst_PingResult.Items.Add("缓冲区大小:" + reply.Buffer.Length);
}
else
lst_PingResult.Items.Add(reply.Status.ToString());
}
}
}

 

若出现编译不了以上代码的情况,可以到下面的地址下载完整例子:

https://files.cnblogs.com/andrew-blog/PingExample.rar

参考:http://www.wxzzz.com/?id=27