![]() |
|
Модераторы: feodorv |
![]()
|
|
| En_t_end |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2074 Регистрация: 4.12.2004 Репутация: нет Всего: 20 |
Знаю, что ответ где-то рядом, но... как узнать ?
Это сообщение отредактировал(а) En_t_end - 30.6.2005, 16:42 |
|||
|
||||
| AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 1 Всего: 118 |
А что значит "живой" ? В смысле занят или в смысле данные по нему не текут ?
Если просто на занятость, то надо его просто попробовать открыть. Если вылетит с ошибкой, то посмотреть , что за ошибка и скорее всего он просто занят. |
|||
|
||||
| Mayk |
|
||||
![]() ^аВаТаР^ сообщение>> ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2616 Регистрация: 22.5.2005 Где: за границей разум а Репутация: нет Всего: 134 |
Например, можно смотреть в сторону SO_KEEPALIVE.
Цитата из моей любимой книги Стивенса "Unix. Разработка сетевых приложений"(в винде SO_KEEPALIVE тоже есть)
устанавливать так:
Ещё описан TCP_KEEPALIVE, которой в качестве аргумента keep_alive берёт кол-во секунд перед отправкой сообщения. Он устанавливается после установки SO_KEEPALIVE. Но в виндозных хедерах я его не нашел. -------------------- Здесь был кролик. Но его убили. Человеки < кроликов, йа считаю. |
||||
|
|||||
| En_t_end |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2074 Регистрация: 4.12.2004 Репутация: нет Всего: 20 |
Короче у меня проблема... в периоды recv-send клиент может внезапно отключиться или попросту вырубиться... ведь это блокирующие функции, сервер повиснет. Мне нужно перед каждой посылкой или принятием сообщений проверять работает ли сокет клиента.
|
|||
|
||||
| Mayk |
|
|||
![]() ^аВаТаР^ сообщение>> ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2616 Регистрация: 22.5.2005 Где: за границей разум а Репутация: нет Всего: 134 |
Делай неблокиремый сокет. Или используй select/poll для проверки готовности сокета. А проверять перед отправкой каждого сообщения это довольно накладно.
-------------------- Здесь был кролик. Но его убили. Человеки < кроликов, йа считаю. |
|||
|
||||
| En_t_end |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2074 Регистрация: 4.12.2004 Репутация: нет Всего: 20 |
Дык просто понадобилось мне управлять моим серваком в локальной сети, он без монитора, клавы, мыши. Знаю, что есть РемотАдмины, но качать было лень, поэтому вечерком сел писать простенький клиент-сервер с набором простых команд.
Вот ты писал про SO_KEEPALIVE , а можно ли таймаут устанавливать в ручную ? ну мне допустим надо 1 минуту поставить. |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Сети | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |