Udostępnij za pośrednictwem


Maksymalna liczba obsługiwanych gniazd

Maksymalna liczba gniazd obsługiwanych przez określonego dostawcę usług Windows Sockets jest specyficzna dla implementacji. Dostawca usługi Microsoft Winsock ogranicza maksymalną liczbę gniazd obsługiwanych tylko przez dostępną pamięć na komputerze lokalnym. Jednak dostawcy usługi Winsock innych firm mogą mieć ograniczenia dotyczące liczby obsługiwanych gniazd. Aplikacja nie powinna zakładać dostępności określonej liczby gniazd. Aby uzyskać więcej informacji na ten temat, zobacz WSAStartup.

FD_SET i wybierz pozycję

W pliku nagłówka Winsock2.h do użycia w aplikacjach portowych do systemu Windows ze środowiska UNIX zdefiniowano wiele makr FD_XXX. Te makra są używane z wybierania i funkcji WSAPoll na potrzeby przenoszenia aplikacji do systemu Windows. Maksymalna liczba gniazd, których może używać aplikacja Windows Sockets, nie ma wpływu na stałą manifestu FD_SETSIZE. Ta wartość zdefiniowana w pliku nagłówka Winsock2.h jest używana w konstruowaniu struktur fd_set używanych z funkcją select. Wartość domyślna w Winsock2.h wynosi 64. Jeśli aplikacja jest przeznaczona do pracy z ponad 64 gniazdami przy użyciu wybierz i funkcji WSAPoll, implementator powinien zdefiniować FD_SETSIZE manifestu w każdym pliku źródłowym przed dołączeniem pliku nagłówka Winsock2.h. Jednym ze sposobów może być uwzględnienie definicji w opcjach kompilatora w pliku make. Można na przykład dodać "-DFD_SETSIZE=128" jako opcję wiersza polecenia kompilatora dla języka Microsoft C++. Należy podkreślić, że zdefiniowanie FD_SETSIZE jako określonej wartości nie ma wpływu na rzeczywistą liczbę gniazd dostarczonych przez dostawcę usług Windows Sockets. Ta wartość ma wpływ tylko na makra FD_XXX używane przez wybierania i funkcji WSAPoll.

fd_set

Przenoszenie aplikacji gniazd do usługi Winsock

wybierz pozycję

zagadnienia dotyczące programowania winsock

WSAStartup

WSAPoll