Condividi tramite


Restrizioni per più provider in selezione

La funzione select viene usata per determinare lo stato di uno o più socket in un set. Per ogni socket, il chiamante può richiedere informazioni sullo stato di lettura, scrittura o errore. Un set di socket è indicato da una struttura fd_set.

Windows Sockets 2 consente a un'applicazione di usare più provider di servizi, ma la funzione select è limitata a un set di socket associati a un singolo provider di servizi. Ciò non impedisce in alcun modo a un'applicazione di avere più socket aperti tramite più provider.

Esistono due modi per determinare lo stato di un set di socket che si estende su più provider di servizi:

Quando un'applicazione deve usare la semantica di blocco in un set di socket che si estende su più provider, è consigliabile usare WSAWaitForMultipleEvents. L'applicazione può anche usare la funzione WSAEventSelect, che consente agli eventi di rete di FD_XXX (vedere WSAEventSelect) di associare un oggetto evento e di essere gestiti dall'interno del paradigma dell'oggetto evento (descritto in I/O sovrapposto e oggetti evento).

La funzione WSAAsyncSelect non è limitata a un singolo provider perché accetta un singolo descrittore socket come parametro di input. Si noti tuttavia che la funzione WSAEventSelect offre prestazioni e scalabilità migliori rispetto a WSAAsyncSelect, in quanto il sovraccarico della gestione della pompa di messaggi con i messaggi di evento Winsock aumenta man mano che aumenta il numero totale di socket usati.