Вопрос

Есть ли у кого-нибудь фрагмент кода, который проверяет, включена ли сеть на компьютере и имеет ли активный IP-адрес.

У меня есть сетевое программное обеспечение, которое подключается к другим клиентским машинам. Хотя оно работает, когда машина подключена, но если я отключу кабель или отключу сеть, оно выдаст целый ряд исключений.

Было бы неплохо просто поставить галочку сверху :D

Заранее спасибо

Это было полезно?

Решение

Сеть всегда находится в динамическом состоянии, простой проверки в начале работы недостаточно для корректной работы.Поэтому, к сожалению, вам необходимо проверить состояние успешности сетевых операций.

Что касается даже не запуска программы в состоянии отключения от сети...Подумайте, запускается ли ваша программа автоматически после сбоя компьютера или сбоя питания.Или если какой-либо другой компонент пострадал от чего-то подобного или произошел сбой.Такое случается на удивление часто, и перезапуск программы на n+1 компьютерах только потому, что какой-то дурак наткнулся на сетевой кабель, весьма раздражает.

Для проверки общей доступности сети вы всегда можете «ping -q -c 1 127.0.0.1». Возвращаемое значение равно 1, если локальный хост не отвечает.Это должно быть в сценарии запуска, нет необходимости кодировать его в приложении.

Другие советы

Вероятно, вам следует просто поймать исключения:в противном случае у вас возникнут проблемы, если машина подключена к сети, а не к той, в которой есть соответствующие другие машины.

Я думаю, вы можете получить то, что хотите, с помощью команды ifconfig в терминале.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top