The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Как определить разрыв соединения."
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"Как определить разрыв соединения."  
Сообщение от aljaba email(??) on 16-Ноя-06, 16:11 
Привет. У меня такая проблема. В клиент-серверной проге, сервер под линухом, а клиен под виндой. Когда в процессе пересылки данных я выдёргиваю сетевой катель, Клиен это дело отлавливает и выдаёт ошибку, проблема в Серваке, при просмотре netstst'ом он в состояние  Established. А мне надо превести его в состояние Listen. Как отловить разрыв соединения? Помогите плиз.
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени, UBB]


1. "Как определить разрыв соединения."  
Сообщение от dkrot (??) on 16-Ноя-06, 18:40 
>Привет. У меня такая проблема. В клиент-серверной проге, сервер под линухом, а
>клиен под виндой. Когда в процессе пересылки данных я выдёргиваю сетевой
>катель, Клиен это дело отлавливает и выдаёт ошибку, проблема в Серваке,
>при просмотре netstst'ом он в состояние  Established. А мне надо
>превести его в состояние Listen. Как отловить разрыв соединения? Помогите плиз.
>
Если именно такой жесткий вариант как обрыв связи, то см. SO_KEEPALIVE, либо вручную производить подобные опросы. Оставшуюся часть сообщения не понял (Established->Listen).

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "Как определить разрыв соединения."  
Сообщение от aljaba email(??) on 16-Ноя-06, 19:06 
>Если именно такой жесткий вариант как обрыв связи, то см. SO_KEEPALIVE, либо вручную производить подобные опросы. Оставшуюся часть сообщения не понял (Established->Listen).

Повторите для тупых.... Это опции  для оператора? Если да, то какого? можно пример.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "Как определить разрыв соединения."  
Сообщение от dkrot (??) on 16-Ноя-06, 20:11 
>>Если именно такой жесткий вариант как обрыв связи, то см. SO_KEEPALIVE, либо вручную производить подобные опросы. Оставшуюся часть сообщения не понял (Established->Listen).
>
>Повторите для тупых.... Это опции  для оператора? Если да, то какого?
>можно пример.
Я с точки зрения программирования (что вобщем-то и подразумевает форум).
man 2 setsockopt на предмет SO_KEEPALIVE
Также: https://www.opennet.ru/openforum/vsluhforumID9/4408.html
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "Как определить разрыв соединения."  
Сообщение от Boris Polevoy on 17-Ноя-06, 10:19 
>Привет. У меня такая проблема. В клиент-серверной проге, сервер под линухом, а
>клиен под виндой. Когда в процессе пересылки данных я выдёргиваю сетевой
>катель, Клиен это дело отлавливает и выдаёт ошибку, проблема в Серваке,
>при просмотре netstst'ом он в состояние  Established. А мне надо
>превести его в состояние Listen. Как отловить разрыв соединения? Помогите плиз.
>

TCP не имеет встроенных средств определения разрыва соединения, как например, X.224. SO_KEEPALIVE не более, чем подпорка, т.к. она не позволяет реагировать на разрыв физического соединения оперативно (за секунды).

Отслеживать состояние соединения должен протокол верхнего уровня. Т.е. клиент должен постоянно опрашивать доступность сервера, сервер должен следить за активностью клиента. По истечению определенного таймаута оба могут закрывать соединения, если от удаленной стороны не было никакой активности. Причем подобные механизмы должны быть заложены в любом сетевом протоколе, иначе простая DoS атака выводит сервер из строя.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "Как определить разрыв соединения."  
Сообщение от aljaba email(??) on 20-Ноя-06, 09:05 
Всем спасибо. Выход был найден путём посылки каждые 5 секунт контрольной метки, и если она не приходила на сервер в течении 25 сек, то соединение считалось разорвавшимся.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Спонсоры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2022 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру