Официальный форум СВД Встраиваемые Системы
19 Мая, 2012, 15:31:00 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

Войти
 
 
 Сайт СВД ВС  Начало   Помощь Поиск Войти Регистрация  
Страниц: [1]   Вниз
  Печать  
Автор Тема: TCP - наличие подключения  (Прочитано 466 раз)
chuzhik
Пользователь

Сообщений: 10


« : 11 Апреля, 2011, 10:58:58 »

Добрый день

Вот такая задача стоит.
QNX 6.3.0
Рабочее место подключено по сети к другой аппаратуре, протокол TCP/IP, рабочее место - клиент. Нужно чтобы при выдергивании сетевого шнура между клиентом и сервером, программа клиента распознавала отсутствие связи.
Под Linux это делалось установкой опций сокета

setsockopt(_socket->get_fd(),SOL_SOCKET, SO_KEEPALIVE, &time, sizeof (time));
setsockopt(_socket->get_fd(),SOL_TCP, TCP_KEEPCNT, &tries, sizeof(tries));
setsockopt(_socket->get_fd(),SOL_TCP, TCP_KEEPIDLE, &time, sizeof(time));
setsockopt(_socket->get_fd(),SOL_TCP, TCP_KEEPINTVL, &time, sizeof(time));"

Часть этих опций в хелпе по QNX я не нашел. Единственное, что раскопал -
setsockopt(m_socket, SOL_SOCKET, SO_RCVTIMEO, &time_val, sizeof(time_val) );
По этой опции на операции чтения recv клиент не задержится дольше заданного времени, а после выхода из recv количество считанных байтов будет равно -1, что соответствует ошибке со стороны сервера. Естественно, такой случай дальше обрабатывается.

Подскажите, пожалуйста, есть ли какие-то еще вариаты проверки наличия подключения? Старшие товарищи говорят, что выходить из чтения по таймауту не корректно.
Записан
Андрей Панченко
Сотрудник СВД ВС
Пользователь

Сообщений: 17



WWW
« Ответ #1 : 11 Апреля, 2011, 13:23:33 »

Здравствуйте,
в QNX Product Documentation для 6.5.0 есть описание механизма "Keepalive timing", вероятно, это должно помочь вам.
Документацию можно посмотреть по адресу http://www.qnx.com/developers/docs/6.5.0/index.jsp в разделе 'QNX Neutrino Realtime Operating System > Library Reference > G' getsockopt()
« Последнее редактирование: 11 Апреля, 2011, 13:28:46 от Андрей Панченко » Записан

Сотрудник СВД Встраиваемые Системы
chuzhik
Пользователь

Сообщений: 10


« Ответ #2 : 12 Апреля, 2011, 11:17:18 »

Спасибо, все заработало
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP © 2002-2012 СВД Встраиваемые Системы.
При использовании материалов сайта ссылка на forum.kpda.ru обязательна.

Powered by SMF 1.1.16 | SMF © 2006-2009, Simple Machines | © Aiwan. Kolobok smiles | Sitemap
Valid XHTML 1.0! Valid CSS!
Сайт СВД ВС

В последний раз google посещал эту страницу 02 Мая, 2012, 02:25:05