![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как оследить обрыв сети?
WondeRu © (2004-09-07 09:47:00)Здравствуйте!
Винда отлавливает обрыв локальной сети мгновенно (показывает balloon message)!
Мое приложение работает с удаленной БД.
Как в своем приложении поставить хук на обрыв сети?
Спасибо!
Digitman (2004-09-08 11:38:00) [1]
> они могут уйти в локальный файл
это как ?
WondeRu (2004-09-08 11:25:00) [2]Reindeer Moss Eater © (07.09.04 11:59) [5]
А без твоего строгого запрета они могут уйти на сервер?
)))
они могут уйти в локальный файл!
Карелин Артем © (07.09.04 15:42) [6]
А если сеть есть, а вот сервер БД отвалился? Или маршрутизатор не пущает до сервера пакеты?
всяко бывает)
Карелин Артем (2004-09-07 15:42:00) [3]WondeRu © (07.09.04 11:28) [3]
А если сеть есть, а вот сервер БД отвалился? Или маршрутизатор не пущает до сервера пакеты?
Reindeer Moss Eater (2004-09-07 11:59:00) [4]запрет на SQL запросы!
А без твоего строгого запрета они могут уйти на сервер?
При обрыве сети.
Digitman (2004-09-07 11:38:00) [5]
> WondeRu © (07.09.04 11:28) [3]
> запрет на SQL запросы!
гм.. и для этого нужно лезть в дебри каких-то там "хуков" ?
достаточно просто грамотно обрабатывать ошибки/исключения клиентской части
WondeRu (2004-09-07 11:28:00) [6]Digitman © (07.09.04 10:27) [1]
и что ты будешь делать в теле этого хука ?
запрет на SQL запросы!
Verg © (07.09.04 10:50) [2]
связь с сервером БД так же может оборваться из-за множества других причин
знаю, но это (обрыв сети) у нас основная причина всех бед
Всем спасибо!
Verg (2004-09-07 10:50:00) [7]Если говорить о сети TCP/IP, то отключение сетевого адаптера немедленно приводит к изменению в маршрутной таблице, разрыву всех установленных через этот интерфейс TCP соединений.
Изменение в маршрутной таблице можно отслеживать ф-цией
function NotifyRouteChange( Handle : PHandle; Overlapped : POverlapped):DWORD; stdcall; external 'IPHLPAPI.DLL';
После наступления изменения просмотреть все адаптеры ф-цией
function GetIfTable(pIfTable : PMIB_IFTABLE; var pdwSize : ULONG; bOrder : BOOL): DWORD; stdcall;external 'IPHLPAPI.DLL';
Отключенный адаптер будет иметь состояние
dwOperStatus <> MIB_IF_OPER_STATUS_OPERATIONAL (5)
или
dwAdminStatus <> MIB_IF_ADMIN_STATUS_UP (1)
Только это все полумеры, т.к. связь с сервером БД так же может оборваться из-за множества других причин, а результат один - СУБД не работает.
Digitman (2004-09-07 10:27:00) [8]и что ты будешь делать в теле этого хука ?