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