我正在使用.NET、C#和WPF,我需要检查是否已经连接到某个URL,并且我找不到任何在互联网上发现的代码可以工作。
我尝试过:
Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
try
{
IAsyncResult result = socket.BeginConnect("localhost/myfolder/", 80, null, null);
bool success = result.AsyncWaitHandle.WaitOne(3000, true);
if (!success)
{
MessageBox.Show("Web Service is down!");
}
else
MessageBox.Show("Everything seems ok");
}
finally
{
socket.Close();
}
即使我关闭本地的Apache服务器,但我总是收到一条“一切都正常”的消息。
我还尝试过:
ing ping = new Ping();
PingReply reply;
try
{
reply = ping.Send("localhost/myfolder/");
if (reply.Status != IPStatus.Success)
MessageBox.Show("The Internet connection is down!");
else
MessageBox.Show("Seems OK");
}
catch (Exception ex)
{
MessageBox.Show("Error: " + ex.Message);
}
但是这总是会导致异常(ping似乎只在ping服务器时有效,因此localhost有效,但localhost/myfolder/无效)
请问如何检查连接,使其对我起作用?