Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Сети > Опрос IP-адреса через telnet


Автор: killerbean 19.6.2006, 10:31
Написал программу работы с АТС через telnet. Все нормально работает только 1 проблема при сбое АТС (ну или отключении от сети) программа перестает получать данные через telnet. 
Вопрос: как мне определять момент отключения и включения АТС? (IP:192.168.1.200    port:23) 

Автор: Snowy 19.6.2006, 10:48
Лови событие OnDisconnect (или что там у тебя, в зависимости от того, чем пользуешься) 

Автор: killerbean 19.6.2006, 11:10
Не мне это не подходит. Ну а если у меня АТС на 10 мин. отключилась?

Мне надо что ли пинговать  IP-адрес и когда коннект снова появиться, то сразу же начинать работу
(работаю через TIDTelnet) 

Автор: Snowy 19.6.2006, 11:35
Цитата(killerbean @  19.6.2006,  11:10 Найти цитируемый пост)
Не мне это не подходит.
Как не подходит?
Если тебе нужно поймать момент отключения, то именно так.

Цитата(killerbean @  19.6.2006,  11:10 Найти цитируемый пост)
и когда коннект снова появиться, то сразу же начинать работу
Если коннекта нет (еще не соеденился, или был дисконнект), то каждые N секунд производи попытку подключения. 

Автор: killerbean 19.6.2006, 14:09
Цитата

Если коннекта нет (еще не соеденился, или был дисконнект), то каждые N секунд производи попытку подключения. 


Ну а если работа программы завершаеться, то обязательно будет Disconnect, а программа через каждые N секунд будет пытаться приконектиться. Как мне эту ситуацию разрулить? 

Автор: Snowy 19.6.2006, 14:48
А какие у тебя гарантии, что связь снова появится?
Тут нужно смотреть по ситуации.
Как только связь снова появится - коннект установится.
Не появится - коннект не пройдет, будем пытаться соедениться через следующие N секунд... 

Автор: killerbean 19.6.2006, 15:17
Связь появиться обязательно. Просто хочу зашититься от сбоев АТС. Они бывают не часто и больше 15 мин. не не дляться.

Но я все раво не понял. Как мне выйти из программы? 

написал так:
Код

procedure Tats.telnetDisconnect(Sender: TObject);
begin
  while not telnet.Connected do
  begin
    Delay(5000);
    telnet.Connect;
  end;
end;


а когда пытаюсь выйти из проги (происходит Disconnect), она не отвечает 

Автор: Snowy 19.6.2006, 15:22
Нет, по дисконнекту запускай таймер, который и будет пытаться установить коннект. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)