Udostępnij za pośrednictwem


Wiele ograniczeń dostawcy w przypadku wybrania

Funkcja select służy do określania stanu co najmniej jednego gniazda w zestawie. Dla każdego gniazda obiekt wywołujący może zażądać informacji o stanie odczytu, zapisu lub błędu. Zestaw gniazd jest wskazywany przez strukturę fd_set.

Windows Sockets 2 umożliwia aplikacji korzystanie z więcej niż jednego dostawcy usług, ale wybrać funkcję jest ograniczona do zestawu gniazd skojarzonych z jednym dostawcą usług. W żaden sposób nie ogranicza to aplikacji do otwierania wielu gniazd za pośrednictwem wielu dostawców.

Istnieją dwa sposoby określania stanu zestawu gniazd obejmujących więcej niż jednego dostawcę usług:

Jeśli aplikacja musi używać semantyki blokującej w zestawie gniazd obejmujących wielu dostawców, zaleca się WSAWaitForMultipleEvents. Aplikacja może również użyć funkcji WSAEventSelect, która umożliwia FD_XXX zdarzeń sieciowych (zobacz WSAEventSelect) w celu skojarzenia z obiektem zdarzenia i obsługi z poziomu paradygmatu obiektu zdarzenia (opisanego w Nakładające się operacje we/wy i obiekty zdarzeń).

Funkcja WSAAsyncSelect nie jest ograniczona do pojedynczego dostawcy, ponieważ przyjmuje deskryptor pojedynczego gniazda jako parametr wejściowy. Należy jednak pamiętać, że funkcja WSAEventSelect zapewnia lepszą wydajność i skalowalność w WSAAsyncSelect, ponieważ obciążenie związane z utrzymywaniem pompy komunikatów komunikatów zdarzeń winsock zwiększa się wraz ze wzrostem całkowitej liczby używanych gniazd.