在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
在app中,我们经常需要确定网络是否畅通,windows下自带ping.exe 那么我们C#中如何实现ping操作呢。 Ping类位于System.Net.NetworkInformation下。通过它应用程序确定是否可通过网络访问远程计算机。
Ping 成功只是表示可以通过网络访问远程主机;但并不保证远程主机上存在更高级别的服务(例如 Web 服务器)。 http://www.ietf.org 上找到。
DontFragment 属性以控制如何传输 Internet 控制消息协议 (ICMP) 回送请求数据包。 如果要测试将数据包从源计算机发送到目标计算机所需的转发数(也称为跃点),设置此选项很有用。 DontFragment 属性控制是否可将发送到远程主机的数据分成多个数据包。如果要测试用于传输数据包的路由器和网关的最大传输单元 (MTU),此选项很有用。 PingOptions 的实例
PingReply 类的实例返回有关操作的信息,如操作状态以及发送请求和接收答复所用的时间。 PingReply。 Options 属性将返回 null。 1 //Ping 实例对象; 2 Ping pingSender = new Ping(); 3 //ping选项; 4 PingOptions options = new PingOptions(); 5 options.DontFragment = true; 6 string data = "ping test data"; 7 byte[] buf = Encoding.ASCII.GetBytes(data); 8 //调用同步send方法发送数据,结果存入reply对象; 9 PingReply reply = pingSender.Send("www.baidu.com", 120, buf, options); 10 11 if (reply.Status == IPStatus.Success) 12 { 13 Console.WriteLine("主机地址::"+reply.Address); 14 Console.WriteLine("往返时间::"+reply.RoundtripTime); 15 Console.WriteLine("生存时间TTL::"+reply.Options.Ttl); 16 Console.WriteLine("缓冲区大小::"+reply.Buffer.Length); 17 Console.WriteLine("数据包是否分段::"+reply.Options.DontFragment); 18 } //out put MSDN:Ping >>> https://msdn.microsoft.com/zh-cn/library/system.net.networkinformation.ping%28v=vs.110%29.aspx MSDN:PingOptions >>> https://msdn.microsoft.com/zh-cn/library/system.net.networkinformation.pingoptions%28v=vs.110%29.aspx MSDN:PingReply >>> https://msdn.microsoft.com/zh-cn/library/system.net.networkinformation.pingreply%28v=vs.110%29.aspx |
请发表评论