Blitz Creatures
Главная » Статьи » C# and XNA

Проверка подключения к Интернету
   Итак, как проверить программно, подключен компьютер к Интернету, или нет?
   Когда мне понадобилось решить этот вопрос, я отправился в дебри Интернета и на одном англоязычном сайте нашел простое решение.

   Создадим простейшее Win Forms приложение (можно и не создавать, самая главная часть - это класс, его можно использовать где угодно). Добавим кнопку и "метку" (Label) для того чтобы вывести результат проверки.
   Добавляем в проект новый класс (правый щелчок на названии проекта в Solution Explorer, Add->Class...). Я назвал его ConnectionChecker:

    public class ConnectionChecker
    {
        // Импортируем функцию из стандартной dll Windows
        [DllImport("wininet.dll")]private extern static bool InternetGetConnectedState( out int Description, int ReservedValue ) ;

        // Создаем новую функцию используя API-функцию библиотеки
        public static bool IsConnectedToInternet( )
        {
            int Desc ;
            return InternetGetConnectedState( out Desc, 0 ) ;
        }
    }

   Функция проверки объявлена как статический член, следовательно, для её использования не обязательно создавать экземпляр класса.
   Дважды щелкаем по кнопке на форме, и добавляем в созданную функцию код проверки:

    private void button1_Click(object sender, EventArgs e)
    {
        string str="None";
        if (ConnectionChecker.IsConnectedToInternet()) str = "Connected";
        label1.Text = str;
   }

   Здесь все элементарно - строка; далее, если соединение наличествует, строка принимает значение "Connected" и выводится на форму.

   Все готово. На всякий случай прилагаю файл с кодом класса и скомпилированным exe-шником программы: ссылка.
Категория: C# and XNA | Добавил: NightOwl (09.07.2010)
Просмотров: 4016 | Комментарии: 5 | Теги: Туториал, Интернет, visual studio, xna, C# | Рейтинг: 0.0/0
Всего комментариев: 4
4 Guest  
0
Эта проверка на самом деле проверяет только подключение.
А факт наличия интернета - нет.
Существование соединения и работоспособный интернет - разные вещи.
Корректно проверить работоспособность интернет канала можно только подключившись куда-нибудь в сети или пингануть кого.

3 NightOwl  
0
Вот только одна проблема - ваш код определяет подключение только для MegaFon. а если у пользователя другой провайдер?

2 NightOwl  
0
Спасибо. Приму к сведению.

Добавлю к статье.


1 elanser  
1
Есть лучший способ определения подключения:
public bool Detect()
{
bool bResult = false;
NetworkInterface[] adapters =
NetworkInterface.GetAllNetworkInterfaces();
foreach (NetworkInterface adapter in adapters)
{
IPInterfaceProperties properties = adapter.GetIPProperties();
bResult = adapter.Name.Contains("MegaFon");
if (bResult) break;
}
return bResult;
}

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа
Меню сайта
Поиск по сайту
Категории раздела
C# and XNA [3]
Статьи по программированию в среде С# с использованием графики XNA. Делюсь своим опытом. =D
Blitz3D and Xors3D [0]
Можно было бы добавить PhysX, но он недавно перестал поддерживаться, и появилась встроенная физика в Xors3D.
Объявления
Облако тегов
Друзья сайта
  • Блог разработчика
  • Java игры
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Статистика

    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0

    Copyright FireOwl Team © 2024
    Создать бесплатный сайт с uCoz