2016-06-06 3 views
0

Теперь я работаю с бережливым питоном. И после того, как я проверил исходный код этого, я обнаружил, что по завершении сервера trift setsockopt (reuseaddr, 1) по умолчанию. Это полезно для Ctrl + C и перезапускать сервер для отладки.Как указать опцию socket reuseaddr на бережливом клиенте?

Но теперь у меня слишком много клиентов на локальном хосте, они используют короткие соединения для связи с сервером. И когда они закрывают соединения, эти случайные порты находятся точно в статусе TIME_WAIT! поэтому они могут охватывать порты, которые я хочу запустить на этом сервере. Итак, как я могу указать параметр REUSEADDR на конце клиентского клиента?

+0

PS, код с короткими связями на бережливом клиенте не написан мной. Это общественный компонент в моей колонии. Поэтому я не хочу этого менять. Пожалуйста, помогите мне. –

ответ

0

меня выяснить некоторые подробности о бережливости,

  1. на стороне сервера, опция REUSEADDR устанавливается по умолчанию;
  2. на стороне клиента, кажется, что мы не могли указать эту опцию на подписание TCP-соединений;
  3. На стороне клиента мы можем использовать длинные соединения вместо коротких соединений, чтобы избежать слишком большого количества TIME_WAIT. Для этого нам нужно вызвать transport.open() только один раз;
  4. на стороне сервера, мы можем использовать TForkingServer вместо ThreadedPoolServer;

 Смежные вопросы

  • Нет связанных вопросов^_^