




Из документы:
A value for the backlog of SOMAXCONN is a special constant that instructs the underlying service provider responsible for socket s to set the length of the queue of pending connections to a maximum reasonable value.
Я должен согласиться, это вообще не отвечает на вопрос.
Я не согласен с другими комментариями. Это отличный ответ на распространенный вопрос: «Какого черта я должен передать в качестве второго параметра для listen ()?» Если вы не знаете, используйте SOMAXCONN.
На этот вопрос есть очень длинный ответ в FAQ программиста Winsock. В нем подробно описаны стандартные настройки и функция динамического невыполнения журнала, добавленная в исправление для NT 4.0.
Фантастический ответ в этом FAQ; Спасибо, что поделился. Рекомендуемые.
Если вы используете Linux, см. Справочную страницу listen: «Если аргумент backlog больше, чем значение в /proc/sys/net/core/somaxconn, то он автоматически усекается до этого значения; значение по умолчанию в этом файле - 128. В ядрах до 2.4. 25 этот предел был жестко закодированным значением SOMAXCONN со значением 128 ».
Во-вторых, я использую SOMAXCONN, если у вас нет особой причины использовать короткую очередь.
Имейте в виду, что если в очереди нет места для нового подключения, RST не будет отправлен, что позволяет клиенту автоматически продолжать попытки подключения путем повторной передачи SYN.
Кроме того, аргумент backlog может иметь разное значение в разных реализациях сокета.
В качестве предупреждения для всех, кто использует boost asio, значение SOMAXCONN используется как 5 с boost.
Может ли boost запрашивать это значение у ОС? Часто задаваемые вопросы, связанные с другим ответом, предполагают, что 5 - это истинный максимум, по крайней мере, для некоторых ОС.
@romkyns По крайней мере, в некоторых версиях Windows, существовавших примерно в 1992 году.
Я не думаю, что Boost Asio определяет это значение как таковое. У него есть собственная константа socket_base::max_listen_connections, которой присвоено системное значение SOMAXCONN.
Ужасный ответ. Что такое «разумные ценности»?