2009-02-19 6 views

Antwort

3

SO_RCVBUF in winsock wird durch die TCP-Fenstergröße beschränkt. Zumindest für Pre-Vista-Stacks. Es wäre durch die Verfügbarkeit von nicht ausgelagerten Pools eingeschränkt, was ein ganz anderes Thema ist. So können Sie es ziemlich groß machen, wenn Sie wollen.

Obligatorischer unaufgeforderter Hinweis: Wenn Sie einen großen Puffer verwenden, weil Sie selten empfangen, würde ich in asynchrone E/A mit Ereignissen/Select/Completion-Ports suchen.

1

Basierend auf this article, es sieht aus wie die maximale 64K ist.

+0

Ich bin mir nicht sicher, ob das richtig ist. Ich setze es auf Werte, die ohne Fehler deutlich größer sind. Der Artikel, den du zitierst, ist ziemlich alt. – Matt

2

Ich kann mich nicht sicher erinnern, aber ich glaube, Windows unterstützt die POSIX-Funktion fpathconf() mit der _PC_SOCK_MAXBUF Option. Wenn ja, genau das ist es, wonach Sie suchen.