Главная страница
    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.46 MB
Время: 0.038 c
2-1212654838
redlord
2008-06-05 12:33
2008.07.06
эмуляция нажатия enter


15-1211734774
DVM
2008-05-25 20:59
2008.07.06
Что за программа так оформляет код?


15-1211727630
TIF
2008-05-25 19:00
2008.07.06
Получить все возможные комбинации символов :(


4-1192480485
Magedon
2007-10-16 00:34
2008.07.06
Ассоциация файлов


2-1212728035
кот
2008-06-06 08:53
2008.07.06
Ibqshared





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский