Обнаружен, если машина подключена / доступна? - PullRequest
5 голосов
/ 18 марта 2011

Как я могу определить, подключен ли / доступен ли компьютер в текущей сети.

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

Ответы [ 4 ]

6 голосов
/ 18 марта 2011

вы можете попробовать сделать пинг к машине. проверить эту статью Making a PING with Delphi and the WMI.

3 голосов
/ 18 марта 2011

ICMP-эхо-запрос (PING) сообщит вам, если аппарат включен и доступен в сети. Он не сообщит вам, доступна ли на компьютере служба, к которой вы хотите подключиться (запущена и работает).

Лучше всего было бы просто попытаться установить соединение и вернуться к локальным ресурсам в случае сбоя соединения.

2 голосов
/ 21 марта 2011

Просто попробуйте использовать ресурс, и если вы получите ошибку, используйте вместо этого локальный ресурс.Стратегия, которую вы пытаетесь реализовать, страдает от нескольких проблем, включая временные интервалы между тестом и использованием, во время которых ресурс может стать недоступным, а также фактически не проверяет ресурс на доступность, только несколько ниже- например, TCP-порт или ICMP-эхо-часть стека.В общем, лучший способ определить, доступен ли ресурс, - это просто попытаться использовать его и восстановить после сбоев.Вы все равно должны написать код для обработки этих сбоев, зачем делать все это дважды?

0 голосов
/ 18 марта 2011

Иная стратегия, чем попытка подключения: позвольте серверу сообщить клиентам, если сервисы все еще доступны, отправив UDP Broadcast или какой-то сигнал сердцебиения через промежуточное ПО (каналы?), Которое клиенты слушают - публикация / подписаться модель общения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...