Ответ 1
Из docs:
Значение для отставания SOMAXCONN - это специальная константа, которая инструктирует основного поставщика услуг, ответственного за сокет s, установить максимальную допустимую величину длины ожидающих соединений.
Как определить, что использовать для параметра backlog для прослушивания? Не стоит ли просто указывать очень большое число?
Из docs:
Значение для отставания SOMAXCONN - это специальная константа, которая инструктирует основного поставщика услуг, ответственного за сокет s, установить максимальную допустимую величину длины ожидающих соединений.
Там очень длинный ответ на этот вопрос в часто задаваемые вопросы Winsock Programmer. В нем подробно описывается стандартная настройка, а функция динамического отставания добавлена в исправление для NT 4.0.
Я использую SOMAXCONN, если у вас нет конкретной причины использовать короткую очередь.
Имейте в виду, что если в очереди нет нового соединения, RST не будет отправлено, что позволит клиенту автоматически продолжить попытку подключения путем повторной передачи SYN.
Кроме того, аргумент backlog может иметь разные значения в разных реализациях сокетов.
В качестве предупреждения для любого, кто использует boost asio, значение SOMAXCONN используется как 5 с boost.