win 1024 simultaneous connections
Maxim Dounin
mdounin на mdounin.ru
Вт Июн 26 17:09:49 UTC 2012
Hello!
On Tue, Jun 26, 2012 at 09:15:20AM -0700, Roman Vasilyev wrote:
> On 06/25/2012 05:41 PM, Maxim Dounin wrote:
> >Более развёрнутое объяснение - упирается в FD_SETSIZE=1024.
> >Ещё более развёрнутое объяснение - в man select(2).
> О, спасибо, про селект этого я незнал.
> Пока ковырялся, заодно посмотрел топик в MSDN про селект:
> http://msdn.microsoft.com/en-us/library/windows/desktop/ms740141(v=vs.85).aspx
> тут они ничего, гады, про это ограничение не говорят.
Да ладно?
: The variable FD_SETSIZE determines the maximum number of
: descriptors in a set. (The default value of FD_SETSIZE is 64,
: which can be modified by defining FD_SETSIZE to another value
: before including Winsock2.h.)
> Еще вот тут вроде говорится про некий асинхронный Select (я незнаю
> что это такое)
> http://bit.kuas.edu.tw/~csshieh/teach/np/winsock/index.html
> И в принципе общий вопрос, поправте пожалуйста если я неправильно
> привожу варианты использования виндовых функций.
> Можно использовать:
> 1) select
> 2) poll
> 3) WSAAsyncSelect
> 4) WSAPoll
>
> Это так, или опять я все неправильно понял?
Poll - под виндами не бывает, AFAIK. Ближайший аналог WSAPoll -
доступен только в Vista+. WSAAsyncSelect - не надо использовать
ни для чего серъёзного, там любое событие оборачивается сообщением
в очередь окна, это дорого. Наиболее правильный метод, если
верить людям из Microsoft'а, IOCP.
Сейчас nginx под виндами поддерживает только select.
Maxim Dounin
Подробная информация о списке рассылки nginx-ru