Windows的命令行里,ping的用法如下图:
C#中,Ping的写法也日趋简单。(教材上的Ping内容需要设置太多内容,本专业不需要掌握)
大致步骤如下:
- 创建用于发出ping命令的对象:
Ping ping = new Ping();
- 创建用于接收对端主机反馈的对象;
PingReply pr;
- 获取对端主机的ip地址(有问题需要报错);
ip1 = (Dns.GetHostAddresses(args[0]))[0].ToString();
args[0]表示用控制台执行程序的时候,后面跟的第一个参数。
- 理解反馈中各个部分的含义;
-
pr.Address表示响应的主机
-
pr.Buffer表示响应的字节,pr.Buffer.Length也就是字节长度
-
pr.RoundtripTime表示ping包来回所用的时间(ms)
-
pr.Options.Ttl表示返回报文的TTL值
-
pr.Status表示ping命令执行的结果,在失败的时候可以用pr.Status.ToString()查看失败原因。
-
- 根据反馈内容给出不同的输出
if (pr.Status == IPStatus.Success) { Console.WriteLine($"成功的提示"); } else { Console.WriteLine($"失败的提示"); }
可以用Thread.Sleep(1000)每隔一秒发送一个ping包。
大家试着用控制台完成以下效果的程序:
可以试试按照windows下标准ping那样,在命令结束后添加统计信息。
这个功能在winform下又该如何完成呢?
注意:
1、文本框中用“\r\n” 来换行;
2、可以用textBox2.Refresh()在每一次ping完强制刷新结果文本框。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现