Aplicación Servidor Multi-conexión1. Vista general del funcionamiento
Como vimos anteriormente en el Servidor mono-conexión, dejábamos un socket a la escucha de conexiones entrantes, y al recibir una petición de conexión (evento "ConnectionRequest") le decíamos al Winsock que aceptara esa identidad y este a su vez establecía una conexión con el cliente.
Los principios para crear un servidor multi-conexión son los mismos, salvo que necesitamos dejar un socket escuchando permanentemente conexiones entrantes, este nunca se debe cerrar (al contrario de lo que pasaba en el caso del servidor mono-conexión), entonces ¿como podemos aceptar una conexión si no podemos cerrar el socket que tenemos a la escucha?, ¿acaso podemos dejar un mismo socket escuchando conexiones y atendiendo otra a la vez?, la respuesta es No podemos, pero nada nos impide hacer que otro socket que se encuentra inactivo acepte y atienda una petición de conexión. De esta forma el trabajo total se reparte entre varios sockets: un socket permanentemente escuchando peticiones de conexión (recepcionista) y otros tantos socket que se encargan de atender a cada uno de los clientes (ejecutivos).
2. Creando el arreglo de WinSocks
Para poder trabajar con varias conexiones a la vez necesitamos varios sockets disponibles, ya que cada uno solo puede trabajar con una sola conexión, y como en principio no conocemos la cantidad de Winsocks que necesitaremos debemos inclinarnos por crear Arreglos de controles Winsock e irlos cargando dinámicamente.
Aquí tienes un ejemplo de ello:
*http://www.monografias.com/trabajos30/tutorial-visual-basic/tutorial-visual-basic.shtml