Помогите, к примеру, я пишу небольшую-программку сервер, которая открывает некоторый порт и ждет соединений. Когда клиент подключается здесь все понятно, а вот как узнать когда клиент отключился?
>Помогите, к примеру, я пишу небольшую-программку сервер, которая открывает некоторый порт и
>ждет соединений. Когда клиент подключается здесь все понятно, а вот как
>узнать когда клиент отключился?
ты имеешь ввиду, когда клиент не закрыл tcp-соединение, а просто взял и умер?
попробуй периодически что-нибудь посылать ему и требуй от него ответа или пусть клиент сам периодически что-то посылает. при отсутсвии данных за определенный период, можно считать что клиент умер. слова-то какие :):):)
>Помогите, к примеру, я пишу небольшую-программку сервер, которая открывает некоторый порт и
>ждет соединений. Когда клиент подключается здесь все понятно, а вот как
>узнать когда клиент отключился?Есть несколько варианто (все взато из . UNIX: разработка сетевых приложений
Стивенс У.)
1 - банальный ручной тайм-аут (то есть когда приходят данные по сокету заполняешь структурку гденить) Но этот вариант не подходит для приложений которые не должны часто отсылать сообщения2 - внеполосные данные (посылаются клиентом каждую секунду например) Сервер их обрабатывает и если не пришли внеполосные данные за 5(50) секунд то клиент считается мертвым
Все это есть в энтой книжке Примеры можешь скачать с www.piter.com
man poll
Спасибо огромное, выручили.