Рейтинг:0

настроить тайм-аут бездействия при обработке проверки активности

флаг pe

Я разрабатываю эхо-сервер TCP, используя python и библиотеку сокетов.

Я хотел бы настроить тайм-аут для каждого входящего соединения. Таким образом, чтобы удалить и закрыть их, если есть бездействие для SOCK_TIMEOUT стоимость.

Это достигается с помощью конкретной настройки: client_sock.settimeout(SOCK_TIMEOUT)

В то же время я хотел бы поддерживать активное соединение, использующее метод проверки активности.Итак, если пакет проверки активности получен сервером от данного клиента, я бы хотел избежать использования тайм-аута для закрытия этого конкретного клиента/соединения.

Уточнение проблемы >> Я бы хотел, чтобы сервер прерывал каждое соединение после 3 минут бездействия. Это достигается с помощью установить время ожидания (SOCK_TIMEOUT) функция. Основная проблема заключается в том, что текущая конфигурация и реализация сокета TCP не рассматривает проверку активности как «активность», поэтому соединение закрывается, даже если проверки подтверждены.

Q1 >> Имеет ли это смысл?

Я бы сказал, что это должно быть осуществимо. Однако сервер сокетов не может обработать, как я хотел, проверку активности. Потому что, даже если они подтверждены сервером, ACK возвращается каждому зонду, соединение закрывается по тайм-ауту.

Q2 >> Должен ли я изменить реализацию тайм-аута?

A.B avatar
флаг cl
A.B
Afaik, TCP Keepalive прозрачен для приложения. То есть: приложение не может знать, что это происходит (даже если оно может настроить параметры, чтобы это произошло). Если он не может знать об этом, это спорно. Почему вы должны заботиться об этом? Это похоже на [XY-проблему](https://xyproblem.info/): вам нужно решить проблему, но вы никогда не говорили нам об этом.
rebatoma avatar
флаг pe
позвольте мне уточнить проблему. Я бы хотел, чтобы сервер прерывал каждое соединение после 3 минут бездействия. Это достигается с помощью функции settimeout(SOCK_TIMEOUT). Основная проблема заключается в том, что текущая конфигурация и реализация сокета TCP не рассматривает проверку активности как «активность», поэтому соединение закрывается, даже если проверки подтверждены.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.