Russian Qt Forum

Qt => Работа с сетью => Тема начата: Примерный ученик от Апрель 19, 2021, 17:04



Название: QT5.4 состояние подключения TCP
Отправлено: Примерный ученик от Апрель 19, 2021, 17:04
Есть самые что ни есть простые Сервер и Клиент. Стоят на разных виртуальных машинах, подключение по сети, работает устойчиво и надежно.
Однако при отключении сети ни клиент ни сервер не замечают отсутствия сети. Сервер отправляет данные, а клиент терпеливо ждет...
Почему не возникает ошибка наличия соединения?


Название: Re: QT5.4 состояние подключения TCP
Отправлено: Old от Апрель 19, 2021, 17:10
Почитайте про keepalive в tcp.
А дальше либо настраиваете штатный, либо делаете свой.


Название: Re: QT5.4 состояние подключения TCP
Отправлено: Примерный ученик от Апрель 19, 2021, 17:15
спасибо, посмотрю. Просто думал, что TCP соединения должно реагировать на разрыв сети генерацией ошибки. Если еще можно понять, что клиент, который только читает, может не "заметить" отсутствия соединения, то очень странно, что сервер шлет данные в никуда и бодро продолжает работать


Название: Re: QT5.4 состояние подключения TCP
Отправлено: Примерный ученик от Апрель 19, 2021, 17:33
Почитайте про keepalive в tcp.
А дальше либо настраиваете штатный, либо делаете свой.
Ознакомился. Штатно надо лезть в настройки ОС. Проще добавить в свой протокол обмена периодическую тестовою посылку от сервера к клиенту и обратно.
Не пришли вовремя пара-тройка тестовых посылок - сеанс закрываем.
Спасибо за помощь.