Тема: Перевірка на підключення до інтернету
Ото ж, треба в одній програмульці час від від часу перевіряти наявність підключення до інтернету.
Вирішив заюзати найпростіший спосіб, використовуючи IdHTTP
function CheckConnectToNet( IdHTTP1 : TIdHTTP ) : Bool;
begin
Try
IdHTTP1.Get('http://173.194.39.135/');
CheckConnectToNet := True;
Except
CheckConnectToNet := False;
end;
end;
власне зробив таке, багато не тестив, але сходу ніби працювало.
А зараз, коли програма трішки розрослася і з`явилися частини, які без підключення до нету - працювати не будуть - програма почала плюватися помилками. Я довго тестив, і зрозумів, що проблема якраз у перевірці підключення до нету. Функція працює, але не завжди коректно.
Виявити дуже просто: робимо нову програму , яка по натисненні на кнопку, перевіряє, що повертає функція і видає відповідне повідомлення
if CheckConnectToNet(IdHTTP1) then
ShowMessage('ok')
else
ShowMessage('ne ok');
Запустимо програму. До інтернету ми підключені, натискаємо на кнопку, нам видає повідомлення: "ок", чудово, спробуємо відключити інтернет(програму не закриваємо). Витягуємо просто кабель з компа(так швидше), натискаємо знову кнопку. І тут все ок, нам видає повідомлення: "ne ok". Ну ніби все паше, але...
Під`єднуємо кабель назад, у нас з`являється з`єднання з інтернетом. Знову ж таки клацаємо на нашу пімпочку, і бачимо повідомлення: "ne ok", яке говорить про те, що функція повернула false при тому, що з`єднання є.
От в тому полягає уся проблема. Як можна це виправити ?