В Java, как я могу проверить сетевое подключение без использования DNS? - PullRequest
0 голосов
/ 26 января 2011

У нас есть приложение Java, работающее на переносном устройстве, и используемая нами JVM (CReMe), похоже, содержит ошибку, которая кэширует отрицательные запросы DNS, даже когда мы говорим, что нет.Таким образом, когда мы пытаемся установить соединение с нашим сервером, и поиск DNS не удается, потому что сетевое соединение еще не установлено, приложение застревает, потому что оно никогда не выполнит поиск снова, даже когда подключение восстановлено.

Мы попытались провести тестирование, открыв Socket с жестко заданным IP-адресом, но, очевидно, нет гарантии, что данный IP-адрес не изменится в будущем.Кто-нибудь может предложить другой способ проверить, что у нас есть подключение к сети?

Ответы [ 3 ]

1 голос
/ 26 января 2011

Вы можете получить список IP-адресов и попытаться открыть соединение.Это могут быть IP-адреса компьютеров в вашей локальной сети или IP-адреса Google или Facebook.

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

Когда сеть подключена, вы можете обновить список с помощью поиска DNS.

1 голос
/ 26 января 2011

Вы можете попробовать пользовательский DNS-клиент, например dnsjava .

0 голосов
/ 26 января 2011

Может быть, вы можете попробовать использовать DNS-серверы Google? Сомневаюсь, что они когда-нибудь изменятся, и уверен, что обычно они встают :)

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