2008-09-22 6 views

Antwort

1

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 .

+41

Schreckliche Antwort. Was sind solche "vernünftigen Werte"? – Nyerguds

+6

Ich muss zustimmen, das beantwortet die Frage überhaupt nicht. – spuriousdata

+0

Warum wurde diese Pseudoansage akzeptiert? –

31

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.

+1

Fantastische Antwort in dieser FAQ; danke für das Teilen. Empfohlen. –

+0

Das hat mir wirklich geholfen. Vielen Dank. – Nyerguds

4

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.

  • In den meisten Fällen bedeutet dies die Größe der halb geöffneten Verbindungswarteschlange, in einigen bedeutet dies die Größe der abgeschlossenen Verbindungswarteschlange.
  • In vielen Implementierungen wird das Rückstandsargument multipliziert, um eine andere Warteschlangenlänge zu erhalten.
  • Wenn ein Wert angegeben wird, der zu groß ist, kürzen alle Implementierungen den Wert stillschweigend auf die maximale Warteschlangenlänge ab.
  • -2

    Als Warnung an alle, die Boost Asio verwenden, wird der Wert SOMAXCONN als 5 mit Boost verwendet.

    +0

    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. –

    +0

    @romkyns Auf mindestens einigen Versionen von Windows, die in etwa 1992 vorhanden waren. – EJP

    Verwandte Themen