Сеть вверх? C ++ Fedora / Unix - PullRequest
       14

Сеть вверх? C ++ Fedora / Unix

1 голос
/ 02 декабря 2009

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

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

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

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

Ответы [ 3 ]

3 голосов
/ 02 декабря 2009

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

3 голосов
/ 02 декабря 2009

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

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

2 голосов
/ 02 декабря 2009

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

...