【发布时间】:2018-01-15 15:48:27
【问题描述】:
我正在使用以下代码 ping IP 地址并检查它是否在线。
现在只想知道,这个 C# 的 ping.Send(ipAddress) 会执行 1 次还是 3 次?
Ping ping = new Ping();
PingReply pingReply = ping.Send(ipAddress);
if (pingReply.Status == IPStatus.Success)
{
// Proceed as normal.
}
else
{
// Send email to Admin.
}
【问题讨论】:
-
我很担心
// Proceed as normal所做的假设。pingReply告诉你的只是,在最近的某个时间点,ipAddress正在响应 ping 请求。它不告诉您在ipAddress上运行的其他一些服务可用并且能够成功执行任何特定的处理工作(甚至未来的ping 也不会成功)。 没有大量的预检查可以保护您免受网络和远程机器不受您的代码控制的事实,因此您需要防御性地编写该代码无论如何。 -
@Damien_The_Unbeliever 我同意。但这只是将一些信息作为电子邮件警报发送。比如我每隔一小时检查一次IP是否工作,一直失败,我们要检查一下。