URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 1850
[ Назад ]

Исходное сообщение
"Как определить отключение клиента"

Отправлено Longer , 07-Июл-03 11:28 
Помогите, к примеру, я пишу небольшую-программку сервер, которая открывает некоторый порт и ждет соединений. Когда клиент подключается здесь все понятно, а вот как узнать когда клиент отключился?

Содержание

Сообщения в этом обсуждении
"Как определить отключение клиента"
Отправлено Михаил , 07-Июл-03 12:44 
>Помогите, к примеру, я пишу небольшую-программку сервер, которая открывает некоторый порт и
>ждет соединений. Когда клиент подключается здесь все понятно, а вот как
>узнать когда клиент отключился?
ты имеешь ввиду, когда клиент не закрыл tcp-соединение, а просто взял и умер?
попробуй периодически что-нибудь посылать ему и требуй от него ответа или пусть клиент сам периодически что-то посылает. при отсутсвии данных за определенный период, можно считать что клиент умер. слова-то какие :):):)


"Как определить отключение клиента"
Отправлено Jamper , 07-Июл-03 13:08 
>Помогите, к примеру, я пишу небольшую-программку сервер, которая открывает некоторый порт и
>ждет соединений. Когда клиент подключается здесь все понятно, а вот как
>узнать когда клиент отключился?

Есть несколько варианто (все взато из . UNIX: разработка сетевых приложений
Стивенс У.)
1 - банальный ручной тайм-аут (то есть когда приходят данные по сокету заполняешь структурку гденить) Но этот вариант не подходит для приложений которые не должны часто отсылать сообщения

2 - внеполосные данные (посылаются клиентом каждую секунду например) Сервер их обрабатывает и если не пришли внеполосные данные за 5(50) секунд то клиент считается мертвым

Все это есть в энтой книжке Примеры можешь скачать с www.piter.com


"Как определить отключение клиента"
Отправлено Parish , 07-Июл-03 13:42 
man poll

"Как определить отключение клиента"
Отправлено Longer , 07-Июл-03 14:30 
Спасибо огромное, выручили.