Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Control Winsock -> varios clientes ?

Estas en el tema de Control Winsock -> varios clientes ? en el foro de Visual Basic clásico en Foros del Web. Hola a todos de nuevo, Es posible diseñar una aplicación servidor con winsock para que pueda antender las peticiones de VARIOS CLIENTES SIMULTÁNEAMENTE? Si es ...
  #1 (permalink)  
Antiguo 12/09/2007, 08:39
Avatar de Laforge  
Fecha de Ingreso: noviembre-2004
Ubicación: Galaxia 34, Cuadrante 972, Área 31
Mensajes: 174
Antigüedad: 19 años, 6 meses
Puntos: 2
Control Winsock -> varios clientes ?

Hola a todos de nuevo,

Es posible diseñar una aplicación servidor con winsock para que pueda antender las peticiones de VARIOS CLIENTES SIMULTÁNEAMENTE? Si es así como los puedo diferenciarlos? Por el puerto de entrada?

Saludos y gracias
__________________
Nunca esperes un mejor momento para abrir esa botella de vino...........nunca llega.

No hay vida después de MySQL
  #2 (permalink)  
Antiguo 12/09/2007, 09:02
Avatar de Laforge  
Fecha de Ingreso: noviembre-2004
Ubicación: Galaxia 34, Cuadrante 972, Área 31
Mensajes: 174
Antigüedad: 19 años, 6 meses
Puntos: 2
Re: Control Winsock -> varios clientes ?

..ya está, lo encontré. Tanto predicar de que la gente mire las ayudas y al final yo mismo no sigo el ejemplo!!!

Extraído de la ayuda de MicroSoft VisualBasic 6.0 (por si alguien tiene pereza de mirarlo, jajjajaja):

"Aceptar más de una solicitud de conexión
El servidor básico comentado anteriormente sólo acepta una solicitud de conexión. No obstante, es posible aceptar varias solicitudes de conexión con el mismo control si crea una matriz de controles. En este caso, no necesita cerrar la conexión; basta con crear una nueva instancia del control (estableciendo la propiedad Index) e invocar el método Accept de la nueva instancia.

El código que se muestra a continuación presupone que existe un control Winsock en un formulario llamado sckServer y que su propiedad Index tiene el valor 0, por lo que el control forma parte de una matriz de controles. En la sección Declaraciones se declara una variable intMax a nivel de módulo. En el evento Load del formulario, intMax tiene establecido el valor 0 y la propiedad LocalPort del primer control de la matriz tiene el valor 1001. Después, se invoca el método Listen en el control, convirtiéndolo en el control "que escucha". A medida que llega cada solicitud de conexión, el código comprueba si el índice es 0 (el valor del control "que escucha"). Si es así, este control aumenta la variable intMax y utiliza ese número para crear una nueva instancia del control. Esta instancia se utiliza para aceptar la solicitud de conexión.

Código:
Private intMax As Long

Private Sub Form_Load()
   intMax = 0
   sckServer(0).LocalPort = 1001
   sckServer(0).Listen
End Sub

Private Sub sckServer_ConnectionRequest _
(Index As Integer, ByVal requestID As Long)
   If Index = 0 Then
      intMax = intMax + 1
      Load sckServer(intMax)
      sckServer(intMax).LocalPort = 0
      sckServer(intMax).Accept requestID
      Load txtData(intMax)
   End If
End Sub
..."

Saludos
__________________
Nunca esperes un mejor momento para abrir esa botella de vino...........nunca llega.

No hay vida después de MySQL
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:32.