Sdílet prostřednictvím


Více omezení poskytovatele při výběru

Funkce vybrat slouží k určení stavu jednoho nebo více soketů v sadě. U každého soketu může volající požadovat informace o stavu čtení, zápisu nebo chyby. Sada soketů je označena fd_set strukturou.

Windows Sockets 2 umožňuje aplikaci používat více než jednoho poskytovatele služeb, ale vybrat funkci je omezená na sadu soketů přidružených k jednomu poskytovateli služeb. To nijak neomezí aplikaci, aby měla více soketů otevřených prostřednictvím více poskytovatelů.

Existují dva způsoby, jak určit stav sady soketů, které pokrývají více než jednoho poskytovatele služeb:

Pokud aplikace potřebuje používat blokující sémantiku na sadě soketů, které pokrývají více poskytovatelů, doporučujeme WSAWaitForMultipleEvents. Aplikace může také použít funkci WSAEventSelect, která umožňuje FD_XXX síťovým událostem (viz WSAEventSelect) přidružit k objektu události a zpracovat ho z paradigmatu objektu události (popsané v Překrývající se vstupně-výstupní a objekty událostí).

Funkce WSAAsyncSelect není omezena na jednoho zprostředkovatele, protože jako vstupní parametr přebírá popisovač jednoho soketu. Všimněte si však, že WSAEventSelect funkce nabízí lepší výkon a škálovatelnost oproti WSAAsyncSelect, protože režie při údržbě čerpadla zpráv se zprávami událostí Winsock se zvyšuje, jak se zvyšuje celkový počet používaných soketů.