У меня есть приложение Java, которое запускается каждые 10 минут. Поэтому всякий раз, когда поток начинает выполняться, я должен проверить, есть ли подключение к Интернету или нет. Поэтому я использовал для этого класс Socket. Но проблема здесь в том, что класс сокетов отлично работает, если провод не подключен к моей системе. Для меня, если я подключу провод, тогда у меня есть LAN, но нет интернета. В этом случае класс сокета не может выдать ошибку. Вот мой код -проверить подключение к интернету в java
Socket socket = null;
try {
socket = new Socket("www.google.com", 80);
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (socket != null) try { socket.close();
}
catch(IOException e) {
e.printStackTrace();
}
System.exit(0);
}
Я проверил код здесь - Detect internet Connection using Java. Но использование getContent() не помогает.
Не имеет отношения к вашей проблеме, но вы должны знать, что раздел 'finally' не будет выполнен, если catch будет вызывать' System.exit (0) '(по крайней мере, в Java7). – Pshemo