Я использую .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 работает только для проверки связи с сервером, поэтому localhost работает, но localhost / myfolder / notnt)
Пожалуйста, как проверить соединение, чтобы оно работало для меня?