Я разрабатываю эхо-сервер TCP, используя python и библиотеку сокетов.
Я хотел бы настроить тайм-аут для каждого входящего соединения. Таким образом, чтобы удалить и закрыть их, если есть бездействие для SOCK_TIMEOUT
стоимость.
Это достигается с помощью конкретной настройки: client_sock.settimeout(SOCK_TIMEOUT)
В то же время я хотел бы поддерживать активное соединение, использующее метод проверки активности.Итак, если пакет проверки активности получен сервером от данного клиента, я бы хотел избежать использования тайм-аута для закрытия этого конкретного клиента/соединения.
Уточнение проблемы >> Я бы хотел, чтобы сервер прерывал каждое соединение после 3 минут бездействия. Это достигается с помощью установить время ожидания (SOCK_TIMEOUT)
функция. Основная проблема заключается в том, что текущая конфигурация и реализация сокета TCP не рассматривает проверку активности как «активность», поэтому соединение закрывается, даже если проверки подтверждены.
Q1 >> Имеет ли это смысл?
Я бы сказал, что это должно быть осуществимо. Однако сервер сокетов не может обработать, как я хотел, проверку активности. Потому что, даже если они подтверждены сервером, ACK возвращается каждому зонду, соединение закрывается по тайм-ауту.
Q2 >> Должен ли я изменить реализацию тайм-аута?