Остановка клиента TCP по таймауту.

 
0
 
Сетевые технологии
ava
OlegIT | 29.11.2016, 16:42
Не уверен, что правильно выбрал раздел.
Проблема такая. Отлаживаю стык между модулем на ARM и программой на PC с библиотекой Qt. Связь по изернет, TCP-IP. На ARM-е сервер на PC клиент. Когда я останавливаю сервер для отладки, посмотреть, подумать, клиент на PC разрывает связь по таймауту. Как «сказать» клиенту, что разрывать связь не нужно, жди вечно?
Ответы (4)
ava
CompWorm | 01.12.2016, 05:32 #
клиентский код фстудию!
на вскидку - у тебя клиент с блокирующим сокетом, который тупо закрывается по таймауту, типа
socket = new QTcpSocket(this)
...
if(!socket->waitForReadyRead(1000)) // default is 30000
    socket->close();

убедить клиента не закрывать сокет в таком случае не выйдет.
если кода клиента нет - отлаживайся логами.
ava
OlegIT | 01.12.2016, 14:53 #
Явного

if(!socket->waitForReadyRead(1000)) // default is 30000
    socket->close();

в коде нет, там слот вызывается из библиотеки когда приходят данные. Ответа от сервера долго нет и аля-улю, закроюсь сам.
ava
kapbepucm | 08.12.2016, 12:50 #
Цитата (OlegIT @  29.11.2016,  16:42 findReferencedText)
PC разрывает связь по таймауту
как вы это определяете?
ava
OlegIT | 14.12.2016, 15:24 #
Цитата (kapbepucm @  8.12.2016,  12:50 findReferencedText)
как вы это определяете? 

Слот закрытия соединения вызывается.
Зарегистрируйтесь или войдите, чтобы написать.
Фирма дня
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Участники
advanced
Отправить