C#中实现Ping的简单功能

关于用C#实现Ping的功能网上有很多不同的方法,但是很多代码太复杂了。这里少一点的代码来简单模拟一下这个功能。

效果如下:

 

 

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Net.NetworkInformation;
 
 
namespace Bing
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            Ping p1 = new Ping(); //只是演示,没有做错误处理
            PingReply reply = p1.Send(this.textBox1.Text);//阻塞方式
            displayReply(reply); //显示结果
        }
        private void displayReply(System.Net.NetworkInformation.PingReply reply) //显示结果
        {
            StringBuilder sbuilder;
            if (reply.Status == IPStatus.Success)
            {
                sbuilder = new StringBuilder();
                sbuilder.Append(string.Format("Address: {0} ", reply.Address.ToString()));
                sbuilder.Append(string.Format("RoundTrip time: {0} ", reply.RoundtripTime));
                sbuilder.Append(string.Format("Time to live: {0} ", reply.Options.Ttl));
                sbuilder.Append(string.Format("Don't fragment: {0} ", reply.Options.DontFragment));
                sbuilder.Append(string.Format("Buffer size: {0} ", reply.Buffer.Length));
                listBox1.Items.Add(sbuilder.ToString());
            }
 
        }
    }
}
posted @   楠木大叔  阅读(1279)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
点击右上角即可分享
微信分享提示