zoukankan      html  css  js  c++  java
  • c#下实现ping操作

    C# ping命令实现:利用c#2.0新增的Ping类


    这里我写的是一个窗体程序。首先添加textbox,listbox,button控件,其中textbox录入域名或IP,listbox显示结果.


    在button1_click事件键入

    1. private void button1_Click(object sender, EventArgs e)   
    2. {   
    3.     Ping p1 = new Ping(); //只是演示,没有做错误处理   
    4.     PingReply reply = p1.Send(this.textBox1.Text);//阻塞方式   
    5.     displayReply(reply); //显示结果   
    6.  
    7. }   
    8.  
    9. private void displayReply(PingReply reply) //显示结果   
    10. {   
    11.     StringBuilder sbuilder ;   
    12.     if (reply.Status == IPStatus.Success)   
    13.     {   
    14.         sbuilder = new StringBuilder();   
    15.         sbuilder.Append(string.Format("Address: {0} ", reply.Address.ToString ()));   
    16.         sbuilder.Append(string.Format("RoundTrip time: {0} ", reply.RoundtripTime));   
    17.         sbuilder.Append(string.Format("Time to live: {0} ", reply.Options.Ttl));   
    18.         sbuilder.Append(string.Format("Don't fragment: {0} ", reply.Options.DontFragment));   
    19.         sbuilder.Append(string.Format("Buffer size: {0} ", reply.Buffer.Length));   
    20.         listBox1.Items.Add(sbuilder.ToString());   
    21.     }   
    22.  
    23. }  

    也可以做异步的处理,修改button1_click,并添加PingCompletedCallBack方法

    1. private void button1_Click(object sender, EventArgs e)   
    2. {   
    3.     Ping p1 = new Ping();   
    4.     p1.PingCompleted += new PingCompletedEventHandler(this.PingCompletedCallBack);//设置PingCompleted事件处理程序   
    5.     p1.SendAsync(this.textBox1.Text, null);   
    6. }  
    7.  
    8. private void PingCompletedCallBack(object sender, PingCompletedEventArgs e)   
    9. {   
    10.     if (e.Cancelled)   
    11.     {   
    12.         listBox1.Items.Add("Ping Canncel");   
    13.         return;   
    14.     }   
    15.     if (e.Error != null)   
    16.     {   
    17.         listBox1.Items.Add(e.Error.Message);   
    18.         return;   
    19.  
    20.     }   
    21.     StringBuilder sbuilder;   
    22.     PingReply reply = e.Reply;   
    23.     if (reply.Status == IPStatus.Success)   
    24.     {   
    25.         sbuilder = new StringBuilder();   
    26.         sbuilder.Append(string.Format("Address: {0} ", reply.Address.ToString()));   
    27.         sbuilder.Append(string.Format("RoundTrip time: {0} ", reply.RoundtripTime));   
    28.         sbuilder.Append(string.Format("Time to live: {0} ", reply.Options.Ttl));   
    29.         sbuilder.Append(string.Format("Don't fragment: {0} ", reply.Options.DontFragment));   
    30.         sbuilder.Append(string.Format("Buffer size: {0} ", reply.Buffer.Length));   
    31.         listBox1.Items.Add(sbuilder.ToString());   
    32.  
    33.     }   
    34. }  
  • 相关阅读:
    AntSword 中国蚁剑的下载安装配置(附下载文件)
    开园第一笔
    四舍五入小技巧
    PAT B# 1025 反转链表
    WebService如何根据对方提供的xml生成对象
    解决Web部署 svg/woff/woff2字体 404错误
    解决TryUpdateModel对象为空的问题
    IIS集成模式下,URL重写后获取不到Session值
    SQLServer清空数据库中所有的表并且ID自动归0
    win2003 64位系统IIS6.0 32位与64位间切换
  • 原文地址:https://www.cnblogs.com/wpf123/p/2052910.html
Copyright © 2011-2022 走看看