Compartir a través de


Restricciones de varios proveedores al seleccionar

El seleccionar función se usa para determinar el estado de uno o varios sockets de un conjunto. Para cada socket, el autor de la llamada puede solicitar información sobre el estado de lectura, escritura o error. Un conjunto de sockets se indica mediante una estructura fd_set.

Windows Sockets 2 permite que una aplicación use más de un proveedor de servicios, pero el seleccionar función se limita a un conjunto de sockets asociados a un único proveedor de servicios. Esto no impide que una aplicación tenga varios sockets abiertos a través de varios proveedores.

Hay dos maneras de determinar el estado de un conjunto de sockets que abarca más de un proveedor de servicios:

Cuando una aplicación necesita usar la semántica de bloqueo en un conjunto de sockets que abarca varios proveedores, se recomienda WSAWaitForMultipleEvents. La aplicación también puede usar la función WSAEventSelect, que permite que los eventos de red de FD_XXX (vea WSAEventSelect) se asocien a un objeto de evento y se controlan desde dentro del paradigma del objeto de evento (descrito en objetos de E/S superpuestos y objetos de evento).

La función WSAAsyncSelect no está restringida a un único proveedor porque toma un único descriptor de socket como parámetro de entrada. Tenga en cuenta, sin embargo, que WSAEventSelect función ofrece un mejor rendimiento y escalabilidad en WSAAsyncSelect como la sobrecarga de mantener la bomba de mensajes con mensajes de evento Winsock aumenta a medida que aumenta el número total de sockets que se usan.