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

 
0
 
Netzwerk-Technologien
ava
OlegIT | 29.11.2016, 16:42
Не уверен, что правильно выбрал раздел.
Проблема такая. Отлаживаю стык между модулем на ARM и программой на PC с библиотекой Qt. Связь по изернет, TCP-IP. На ARM-е сервер на PC клиент. Когда я останавливаю сервер для отладки, посмотреть, подумать, клиент на PC разрывает связь по таймауту. Как «сказать» клиенту, что разрывать связь не нужно, жди вечно?
Kommentare (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)
как вы это определяете? 

Слот закрытия соединения вызывается.
Registrieren Sie sich oder melden Sie sich an, um schreiben zu können.
Unternehmen des Tages
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Mitwirkende
advanced
Absenden