Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 19.03.2011, 13:37
mobiliti mobiliti вне форума
Прохожий
 
Регистрация: 12.03.2011
Сообщения: 23
Репутация: 5
Смущение Проверка соединения с Интернет в Delphi

Возникает ошибка, если интернета нет, или его принудительно вырубить, а вот и сама ошибка: Soket Error # 11001 Вопрос как её перехватить чтобы выключить? Или посоветуйте хорошую функцию для проверки интернет соединения. Перерыл весь интернет, пробовал логические функции Windows

INTERNET_CONNECTION_MODEM ;
INTERNET_CONNECTION_LAN ;
INTERNET_CONNECTION_PROXY ;
INTERNET_CONNECTION_MODEM_BUSY ;

ДА они показывают статус интернет соединения, но есть очень большое ‘но’ чтобы поменялся статус соединения надо перегрузить мое приложение, это мне не подходит, мне надо, что бы статус соединения проверялся каждую секунду. Всем спасибо, особенно кто, поможет по делу)


Код:
function CheckInternetConnection(Host: string='google.com'; Port: integer=80; Timeout: integer=1000): boolean;
  var TCP: TIdTCPClient;
begin
  TCP:=TIdTCPClient.Create(nil);
  try
    TCP.Host:=Host;
    TCP.Port:=Port;
    TCP.ConnectTimeout:=Timeout;
    try
      TCP.Connect;
      Result:=TCP.Connected;
    except
      Result:=false;
    end;
  finally
    TCP.Free;
  end;
end;
Ответить с цитированием
  #2  
Старый 19.03.2011, 13:52
Аватар для v1s2222
v1s2222 v1s2222 вне форума
Продвинутый
 
Регистрация: 07.09.2010
Сообщения: 726
Репутация: 26711
По умолчанию

Код:
private
    procedure ClException(Sender: TObject; Error: Exception);

procedure TForm1.ClException(Sender: TObject; Error: Exception);
begin
  If(Error.ClassName = 'ESocketError') then begin 
    Memo.Lines.Add('[' + TimeToStr(Time) + '] ' + Error.Message);
  end
  else
    Application.ShowException(Error); // ошибки не сокета
end;
...
FormCreate:
  Application.OnException := ClException;
Это даст возможность ВСЕ не нужные ошибки не выводить, или вывести (как в примере), в мемо.
__________________
Помогаю за Спасибо
Ответить с цитированием
  #3  
Старый 19.03.2011, 14:01
mobiliti mobiliti вне форума
Прохожий
 
Регистрация: 12.03.2011
Сообщения: 23
Репутация: 5
По умолчанию

ошибка Socket Error #10038
Ответить с цитированием
  #4  
Старый 19.03.2011, 15:06
Аватар для eXplorer
eXplorer eXplorer вне форума
Активный
 
Регистрация: 06.08.2010
Адрес: Ярославль
Сообщения: 264
Версия Delphi: 7
Репутация: 14
По умолчанию

я соединение всегда проверял так:
Код:
begin
if Form1.tcpClient1.LocalHostAddr<>'127.0.0.1' then
ShowMessage('Соединение есть...')
else
ShowMessage('Соединения нет...');
end;
__________________
Ответить с цитированием
  #5  
Старый 19.03.2011, 15:08
Аватар для eXplorer
eXplorer eXplorer вне форума
Активный
 
Регистрация: 06.08.2010
Адрес: Ярославль
Сообщения: 264
Версия Delphi: 7
Репутация: 14
По умолчанию

в OnTimer хорошо работает...
__________________
Ответить с цитированием
  #6  
Старый 20.03.2011, 21:43
mobiliti mobiliti вне форума
Прохожий
 
Регистрация: 12.03.2011
Сообщения: 23
Репутация: 5
По умолчанию

Могу с полной уверенностью сказать, что это не правильно , и это полный бред. Поясняю: 1) Если у тебя сетка 2) Если у тебя стоит сервер 3)ну наконец, если у тебя proxy ТО у тебя программа будет все время показывать CONNECT. Т. е. делаем вывод это в корне не правильно.
Ответить с цитированием
  #7  
Старый 20.03.2011, 21:53
Аватар для eXplorer
eXplorer eXplorer вне форума
Активный
 
Регистрация: 06.08.2010
Адрес: Ярославль
Сообщения: 264
Версия Delphi: 7
Репутация: 14
По умолчанию

Цитата:
Сообщение от mobiliti
Могу с полной уверенностью сказать, что это не правильно , и это полный бред. Поясняю: 1) Если у тебя сетка 2) Если у тебя стоит сервер 3)ну наконец, если у тебя proxy ТО у тебя программа будет все время показывать CONNECT. Т. е. делаем вывод это в корне не правильно.

1) у меня нету сетки
2) у меня нету сервера
3) у меня нуту прокси
для меня то все условия подходит... честно этого не знал знаю только то что у меня работает хорошо и всё сорри...
__________________
Ответить с цитированием
  #8  
Старый 20.03.2011, 22:05
mobiliti mobiliti вне форума
Прохожий
 
Регистрация: 12.03.2011
Сообщения: 23
Репутация: 5
По умолчанию

Ты программы делаешь для себя или для людей?
Ответить с цитированием
  #9  
Старый 20.03.2011, 22:08
Аватар для eXplorer
eXplorer eXplorer вне форума
Активный
 
Регистрация: 06.08.2010
Адрес: Ярославль
Сообщения: 264
Версия Delphi: 7
Репутация: 14
По умолчанию

Цитата:
Сообщение от mobiliti
Ты программы делаешь для себя или для людей?
для себя
__________________
Ответить с цитированием
  #10  
Старый 20.03.2011, 22:21
mobiliti mobiliti вне форума
Прохожий
 
Регистрация: 12.03.2011
Сообщения: 23
Репутация: 5
По умолчанию

Ну, это в корне меняет дело
Ответить с цитированием
  #11  
Старый 22.03.2011, 16:35
Rat Rat вне форума
Активный
 
Регистрация: 12.09.2008
Сообщения: 391
Репутация: 6078
По умолчанию

Ошибка вылазит только при запуске из IDE? или просто когда отдельно exe запускаешь?
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 20:09.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025