Официальный форум СВД Встраиваемые Системы
03 Декабря, 2016, 07:40:47 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

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

Сообщений: 29


« : 11 Апреля, 2011, 09: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, что соответствует ошибке со стороны сервера. Естественно, такой случай дальше обрабатывается.

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

Сообщений: 76



WWW
« Ответ #1 : 11 Апреля, 2011, 12: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, 12:28:46 от Андрей Панченко » Записан

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

Сообщений: 29


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

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

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

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

В последний раз google посещал эту страницу 26 Октября, 2016, 00:13:12