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
| ||||
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 |