Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.07.06;
Скачать: CL | DM;

Вниз

Не возникает Disconnect   Найти похожие ветки 

 
Cardinalius ©   (2007-09-16 10:47) [0]

Приветствую, Мастера!
Возникла проблема... При физическом отключении сети (выдернули штекер RJ-45) не возникает событие OnDisconnect на TClientSocket, хотя если присвоить Active := false сервера или клиента, то данное событие возникает. Мне же необходимо получить данное событие при физическом отключении. Может кто-нибудь знает как?


 
Сергей М. ©   (2007-09-16 10:52) [1]


> необходимо получить данное событие при физическом отключении


Зачем тебе это событие понадобилось ?


 
Cardinalius ©   (2007-09-16 11:41) [2]

Ну и чтобы остановить всякие таймеры и прочую лабуду :)
Фактически нужно, чтобы при обратном включении возникало событие OnConnect и файл передавался дальше :)


 
Сергей М. ©   (2007-09-16 11:44) [3]


> Ну и чтобы остановить всякие таймеры и прочую лабуду


"всякие таймеры и прочая лабуда" прекрасно останавливаются и по исключению и по событию OnError, возникающим при попытке выполнения Send-методов в момент физического разрыва канала.


 
Сергей М. ©   (2007-09-16 11:47) [4]


> нужно, чтобы при обратном включении возникало событие OnConnect


И не жди даже, не дождешься ты его.

OnConnect - одно из следствий выполнения метода Open.

Нет Open - не будет и OnConnect.


 
Anatoly Podgoretsky ©   (2007-09-16 12:18) [5]

Это не Disconnect, а Error - поэтому оно возникнуть не может.


 
Сергей М. ©   (2007-09-16 12:45) [6]


> Cardinalius


Касаемо конкретно компонентов TServer/ClientSocket следует понимать, что события On[Client]Disconnect возникают лишь не иначе как при штатном разрыве виртуального соединения по инициативе партнера по этому соединению.

Разрыв же физического соединения относится к аварийной ситуации, а не к штатной.


 
Cardinalius ©   (2007-09-17 17:11) [7]

Ясно. Сапсибо всем!
Тогда как мне отследить момент отключения? Неужели пинговать по таймеру? Или есть более правильные методы?


 
DVM ©   (2007-09-17 17:13) [8]


> Неужели пинговать по таймеру? Или есть более правильные
> методы?

Не пинговать, а обмениваться пакетами. Это и есть правильное решение.


 
Сергей М. ©   (2007-09-17 18:55) [9]


> как мне отследить момент отключения?


Чукча не читатель ?)

см. [3]


 
Cardinalius ©   (2007-09-17 20:20) [10]

> [9] Сергей М. ©   (17.09.07 18:55)
>
> Чукча не читатель ?)
>
> см. [3]


Сорри :) Сейчас буду разбираться... Спасибо еще раз!


 
Сергей М. ©   (2007-09-17 20:30) [11]


> Cardinalius ©   (17.09.07 20:20) [10]


Весьма важен момент: ClientType = ?



Страницы: 1 вся ветка

Текущий архив: 2008.07.06;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.016 c
6-1189799328
sniknik
2007-09-14 23:48
2008.07.06
Глюк компонента TIdUDPServer в 10м Indy? Проверьте ктонибудь.


8-1182078861
hahol
2007-06-17 15:14
2008.07.06
помогите разобраца в mci


2-1213084956
Mishenka
2008-06-10 12:02
2008.07.06
PopupMenu в MainMenu


11-1184554609
ЛАМА_0
2007-07-16 06:56
2008.07.06
Баг?.


2-1212701907
alex-drob
2008-06-06 01:38
2008.07.06
Как проверять установлен флаг или нет