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