万金流
初次使用博客园,目前感觉还不错。 不知不觉用了4年零4个月了,越来越喜欢博客园。

Windows的命令行里,ping的用法如下图:

 

 

 C#中,Ping的写法也日趋简单。(教材上的Ping内容需要设置太多内容,本专业不需要掌握)

大致步骤如下:

  1. 创建用于发出ping命令的对象:
    Ping ping = new Ping();

     

  2. 创建用于接收对端主机反馈的对象;
    PingReply pr;

     

  3. 获取对端主机的ip地址(有问题需要报错);
    ip1 = (Dns.GetHostAddresses(args[0]))[0].ToString();

    args[0]表示用控制台执行程序的时候,后面跟的第一个参数。

  4. 理解反馈中各个部分的含义;
    1. pr.Address表示响应的主机
    2. pr.Buffer表示响应的字节,pr.Buffer.Length也就是字节长度
    3. pr.RoundtripTime表示ping包来回所用的时间(ms)
    4. pr.Options.Ttl表示返回报文的TTL值
    5. pr.Status表示ping命令执行的结果,在失败的时候可以用pr.Status.ToString()查看失败原因。
  5. 根据反馈内容给出不同的输出
    if (pr.Status == IPStatus.Success)
                    {
                        Console.WriteLine($"成功的提示");
                    }
                    else
                    {
                        Console.WriteLine($"失败的提示");
                    }

     

可以用Thread.Sleep(1000)每隔一秒发送一个ping包。

大家试着用控制台完成以下效果的程序:

 

 可以试试按照windows下标准ping那样,在命令结束后添加统计信息。

这个功能在winform下又该如何完成呢?

注意:

1、文本框中用“\r\n” 来换行;

2、可以用textBox2.Refresh()在每一次ping完强制刷新结果文本框。

posted on 2020-03-31 21:11  万金流  阅读(912)  评论(0编辑  收藏  举报