La Web del Programador: Comunidad de Programadores
 
    Pregunta:  4345 - SOLICITUDES DE CONEXIÓN MÚLTIPLES CON WINSOCK
Autor:  Paul Maluenda Quezada
¿Es posible aceptar múltiples solicitudes de conexión utilizando el mismo puerto local para todas ellas? ¿Se pueden generar múltiples instancias del Winsock para cada conexión? Si es así, ¿Qué puertos locales se deben utilizar en cada una de ellas?

Gracias de antemano. Vuestra página es excelente.

  Respuesta:  Rodrigo Miguel López Gatica
Sí es posible.
Crea un Formulario y agrégale un control Winsock llamado sckServer. A la propiedad index del control sckServer ponele un cero (0). Esto último debes hacerlo porque se crearán varias instancias de sckServer en donde cada instancia será un elemento de una matriz de controles.

El siguiente código muestra lo que tiene que tener y hacer el servidor:

´-----------------------------------
Option Explicit ´Esto es "buena costumbre"

Private intMax As Long

Private Sub Form_Load()
intMax = 0 ´cuenta las instancias de sckServer
sckServer(0).LocalPort = 1001 ´Puedes escoger _
cualquier puerto que no esté en uso, en este _
caso el 1001.
sckServer(0).Listen ´Escuchando a clientes
´Nota: la primera instancia de sckServer (la _
de índice igual a 0), se utiliza sólo _
para "escuchar" solicitudes de conexiones.
End Sub

´El siguiente evento se dispara cuando el _
servidor recibe una solicitud de conexión.

Private Sub sckServer_ConnectionRequest _
(Index As Integer, ByVal requestID As Long)
If Index = 0 Then
´Si el Index es 0 significa que la instancia de sckServer que recibió la conexión es el de índice 0 dentro de la matriz de controles. Por lo tanto hay que crear una nueva instancia (usando la instrucción Load) para que atienda la conexión solicitada, y así dejar la instancia de indice 0 "intacta" para que siga "escuchando" por más solicitudes de conexiones.
intMax = intMax + 1
Load sckServer(intMax) ´Nueva instancia
sckServer(intMax).LocalPort = 0
sckServer(intMax).Accept requestID
End If
End Sub

´----------------------------------

  Respuesta:  Ivan de Jesus Deras Tabora
Si es posible aceptar multiples conexiones utilizando el mismo perto local, y para conexion se puede crear una instancia de Winsock. En realidad se puede utilizar un solo puerto el cual es el que "escucha" solicitudes, cada ves que llega una solicitud se crea una nueva instancia de Winsock y esta es la que atiende la solicitud...

Si queres saber mas enviame un mail...