Wie soll ich herausfinden, was ich für den Backlog-Parameter eines abhörenden Sockets verwenden soll? Ist es ein Problem, einfach eine sehr große Zahl anzugeben?Socket Listenback-Parameter, wie diesen Wert zu bestimmen?
Antwort
Von dem docs:
Ein Wert für den Rückstau von SOMAXCONN ist eine spezielle Konstante, die die zugrunde liegenden Service-Provider verantwortlich für Socket s weist die Länge der Warteschlange zu setzen Verbindungen zu einem maximalen angemessenen Wert der ausstehenden .
Es gibt eine sehr lange Antwort auf diese in der Winsock Programmer's FAQ. Es beschreibt die Standardeinstellung und die dynamische Rückmeldung, die in einem Hotfix zu NT 4.0 hinzugefügt wird.
Fantastische Antwort in dieser FAQ; danke für das Teilen. Empfohlen. –
Das hat mir wirklich geholfen. Vielen Dank. – Nyerguds
Ich zweite mit SOMAXCONN, es sei denn, Sie haben einen bestimmten Grund, eine kurze Warteschlange zu verwenden.
Beachten Sie, dass, wenn in der Warteschlange für eine neue Verbindung kein Platz ist, keine RST gesendet wird und der Client automatisch weiter versucht, eine Verbindung herzustellen, indem er SYN erneut überträgt.
Auch das Backlog-Argument kann unterschiedliche Bedeutungen in verschiedenen Socket-Implementierungen haben.
Als Warnung an alle, die Boost Asio verwenden, wird der Wert SOMAXCONN als 5 mit Boost verwendet.
Könnte Boost das Betriebssystem nach diesem Wert fragen? Die FAQ, die in einer anderen Antwort verlinkt sind, legen nahe, dass 5 das wahre Maximum auf mindestens einigen Betriebssystemen ist. –
@romkyns Auf mindestens einigen Versionen von Windows, die in etwa 1992 vorhanden waren. – EJP
Schreckliche Antwort. Was sind solche "vernünftigen Werte"? – Nyerguds
Ich muss zustimmen, das beantwortet die Frage überhaupt nicht. – spuriousdata
Warum wurde diese Pseudoansage akzeptiert? –