您的位置:首页 > 理论基础 > 计算机网络

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

2014-06-17 20:28 309 查看


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

完整代码如下:

引入命名空间:

[csharp]
view plaincopyprint?

using System.Net.NetworkInformation;  

完整代码:

[csharp]
view plaincopyprint?

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());  
        }  
    }  
}  

若出现编译不了以上代码的情况,可以到下面的地址下载完整例子:
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c#