Задать вопрос
@jonikwm

Можно ли держать tcp Сокет постоянно открытым?

Всем доброго времени суток!
Есть 2-3 клиента на raspberry pi c GPRS интернетом и сервер с белым ip.
Задача: (Двунаправленный асинхронный обмен данными)
Необходимо получать оперативную информацию (в режиме режиме реального времени 24/7) от клиента и так-же оперативно иметь возможность отправить данные сервер->клиент.

Пример для понимания:
1. Серверу нужно знать статус клиента (online/offline).
2. Получать данные от клиента (например мониторить запущенный сторонний процесс в системе).
3. Время от времени отправлять команды сервер -> клиент.

Перечитал много информации, но так и не нашел однозначного ответа.

Какой алгоритм работы в данной ситуации будет правильным?
1. Клиент постоянно держит сокет открытым (при разрыве связи клиент пытаться переподключиться).
2. Клиент периодично (раз в секунду) обменивается данными открывая и закрывая сокет.

P. S. клиент и сервер буду писать на python
  • Вопрос задан
  • 620 просмотров
Подписаться 1 Средний 1 комментарий
Решения вопроса 1
Rou1997
@Rou1997
3. Клиент периодично (раз в секунду) обменивается данными НЕ закрывая сокет, этого хватит чтобы с не закрылся сам через 2 часа, и также это (+таймауты) позволит клиенту отследить некорректный разрыв.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы