如何在页面加载时 ping 服务器



我需要在页面打开时ping12个服务器ips。我试过这个(对于 1 个 ip):

public int sisup;
public void Page_Load(object sender, EventArgs e)
{
    Ping p = new Ping();
    PingReply r;
    String s = "10.1.1.1";
    r = p.Send(s); 
    Response.Buffer = false;
    if (r.Status == IPStatus.Success)
    {
        sisup = 1;
    }
    else
    {
        sisup = 0;
    }
}

并用sisup做点什么。它正在工作,但速度很慢。由于ping,页面加载需要几秒钟。如何在不加载页面的情况下执行此操作?我可以在页面加载后执行此操作吗?或者对ping有什么建议吗?我只需要服务器启动或关闭,并做点什么。

或者也许我可以设置 ping 响应时间。它是本地网络,响应时间仅为1-2毫秒。我想ping等待回复这么久。

您应该考虑使用 Parallel.For .

Parallel.For(0, 12, i =>
{
    // ping each server
});

这样,所有ping将并行运行,您的响应时间将减少10倍左右。

或者,您可以在页面加载后使用 jQuery 进行 ping 操作以进行 AJAX 调用。

$.ajax("PingServer.url")
.done(function() {
    alert("success");
})
.fail(function() {
    alert("error");
});

这需要多做一点工作,但这会效果最好。

最新更新