Compartilhar via


Várias restrições de provedor na seleção

A função select é usada para determinar o status de um ou mais soquetes em um conjunto. Para cada soquete, o chamador pode solicitar informações sobre o status de leitura, gravação ou erro. Um conjunto de soquetes é indicado por uma estrutura fd_set.

O Windows Sockets 2 permite que um aplicativo use mais de um provedor de serviços, mas a função select é limitada a um conjunto de soquetes associados a um único provedor de serviços. Isso não restringe de forma alguma um aplicativo de ter vários soquetes abertos por meio de vários provedores.

Há duas maneiras de determinar o status de um conjunto de soquetes que abrange mais de um provedor de serviços:

Quando um aplicativo precisa usar semântica de bloqueio em um conjunto de soquetes que abrange vários provedores, o WSAWaitForMultipleEvents é recomendado. O aplicativo também pode usar a função WSAEventSelect, que permite que os eventos de rede FD_XXX (confira WSAEventSelect) associem a um objeto de evento e sejam manipulados de dentro do paradigma do objeto de evento (descrito em E/S e objetos de evento sobrepostos).

A função WSAAsyncSelect não é restrita a um único provedor porque usa um único descritor de soquete como um parâmetro de entrada. No entanto, observe que a função WSAEventSelect oferece melhor desempenho e escalabilidade em relação ao WSAAsyncSelect, pois a sobrecarga de manutenção da bomba de mensagem com mensagens de evento Winsock aumenta à medida que o número total de soquetes usados aumenta.