在WP7中模拟PING操作

时间:2012-01-06 07:30:52

标签: windows-phone-7

我正在尝试模拟ping操作,以确定是否可以访问远程主机。我找不到任何结论性的代码样本来为WP7做这个,所以我想我会尝试以下。 我正在寻找的是确认这是否是适当的方法。

Socket socket =
                new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

        SocketAsyncEventArgs args = new SocketAsyncEventArgs();
        args.RemoteEndPoint = new DnsEndPoint (someIP, 80); // use HTTP port 80 
        args.Completed += (obj, eva) =>
        {
            if (eva.SocketError != SocketError.Success) 
            {
              //raise an error or set a view model property indicating error                    
            }                
            socket.Close();
        };
        socket.ConnectAsync(args);

1 个答案:

答案 0 :(得分:2)

除非Mango中的内容发生了变化,否则您无论如何都只能通过HTTP或HTTPS真正到达其他主机 - 因此“可访问”实际上意味着“正在侦听已知URL上的Web请求”...所以最简单的方法是向相关服务器发出一些无害的Web请求。 WebClient可能是最简单的方法,尽管根据我的经验,它在UI线程上的工作量比你真正期望的要多,所以我最终使用了较低级别的HttpWebRequest。对于单个类似ping的请求,您可以使用WebClient