Поделиться через


Максимальное число поддерживаемых сокетов

Максимальное количество сокетов, поддерживаемых определенным поставщиком служб сокетов Windows, является реализацией. Поставщик Microsoft Winsock ограничивает максимальное количество сокетов, поддерживаемых только доступной памятью на локальном компьютере. Однако сторонние поставщики Winsock могут иметь ограничения на количество поддерживаемых сокетов. Приложение не должно делать предположений о доступности определенного количества сокетов. Дополнительные сведения об этом разделе см. в статье WSAStartup.

FD_SET и выберите

Ряд макросов FD_XXX определены в файле заголовка Winsock2.h для использования в переносе приложений в Windows из среды UNIX. Эти макросы используются с функциями select и WSAPoll для переноса приложений в Windows. Максимальное количество сокетов, которые может использовать приложение сокетов Windows, не влияет на константу манифеста FD_SETSIZE. Это значение, определенное в файле заголовка Winsock2.h, используется в создании структур fd_set, используемых с функцией выбора. Значение по умолчанию в Winsock2.h равно 64. Если приложение предназначено для работы с более чем 64 сокетами с помощью функций select и WSAPoll , то реализация должна определить манифест FD_SETSIZE в каждом исходном файле, прежде чем включить файл заголовка Winsock2.h . Одним из способов этого может быть включение определения в параметры компилятора в файле makefile. Например, можно добавить "-DFD_SETSIZE=128" в командную строку компилятора для Microsoft C++. Необходимо подчеркнуть, что определение FD_SETSIZE в качестве определенного значения не влияет на фактическое количество сокетов, предоставляемых поставщиком служб сокетов Windows. Это значение влияет только на макросы FD_XXX , используемые функциями select и WSAPoll .

fd_set

Перенос приложений сокета в Winsock

select

Рекомендации по программированию Winsock

WSAStartup

WSAPoll