You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

97 lines
3.8 KiB

SERVIDOR DE ESTADO DE CLIENTES
REQUISITOS
· Servidor multiusuario
· Controla en todo momento cuantos clientes tiene conectados (hilos)
· Un cliente cuando se conecta envía su propio nombre.
· Cada 5 minutos envía un mensaje a todos los clientes indicando el número de ordenadores que tiene conectado.
· Si un cliente se desconecta, envía un mensaje a todos avisando que se ha desconectado
------------
| SERVIDOR |
------------
-- MÉTODO INICIAR SERVIDOR
Este método se encarga de iniciar el servidor. Toma como argumentos el host (dirección IP) y el puerto en el que se escucharán las conexiones entrantes de los clientes, con ello crea un socket y lo enlaza al host y puerto especificado.
Pone el socket en modo de escucha para aceptar conexiones entrantes e inicia un bucle infinito para escuchar conexiones.
Por cada conexión entrante, crea un hilo separado para manejar al cliente.
-- MANEJAR_CLIENTES
Este metodo maneja la forma de interactuar del cliente con el servidor de forma individual, recibe como argumentos el socket del cliente y el diccionario de los clientes conectados.
Espera a recibir el nombre del cliente y luego lo agrega al diccionario.
En un bucle infinito, espera 5 segundos y luego:
Actualiza la lista de usuarios y el contador de usuarios en la interfaz gráfica del servidor.
Envía al cliente un mensaje con el número de clientes conectados.
Maneja cualquier excepción que pueda ocurrir durante la comunicación con el cliente, eliminando al cliente del diccionario y cerrando su socket.
Informa a los demás clientes sobre la desconexión del cliente actual.
ACTUALIZAR LISTA USUARIOS
Este método actualiza la lista de usuarios en la interfaz gráfica del servidor.
Este método se encarga de actualizar la lista de usuarios de la interfaz gráfica asocciada al servidor, como argumentos recibe el diccionario de clientes y obtiene los nombres.
Cada vez limia la interfaz y los agrega a la vista.
ACTUALIZAR CONTADOR USUARIOS
Este método actualiza el contador de usuarios en la interfaz gráfica del servidor, recibe como argumento el contador de usuarios.
Actualiza el texto del contador con el número de usuarios conectados.
GENERAR INTERFAZ
Este métods se encarga de generar la interfaz grafica estableciendo el diseño correspondiente,
con un contador y una lista de usuarios conectados.
Espera en bucle la interaccion de los clientes.
MAIN
Simplemente es el bloque de inicializacion de la aplicacion
------------
| CLIENTE |
------------
PRINCIPAL:
Esta funcion se encarga de generar la interfaz gráfica del cliente, utilizando Tkinter,
ademas de establecer una entrada de texto para el nombre del cliente junto con dos botones para
enviar el nombre del cliente al servidor y desconectarse del mismo.
Esta función es el punto de entrada principal para la interfaz gráfica del cliente.
Establece los eventos de clic de los botones para llamar a las funciones correspondientes enviar_nombre_callback y desconectar.
ENVIAR NOMBRE
Esta función se encarga de enviar el nombre ingresado por el usuario al servidor.
Recibe como argumentos el nombre ingresado por el usuario, el campo de entrada de nombre y el botón de enviar.
Si la conexión esta en modo activa, envia el nombre al servidor utilizando el socket del cliente.
Espera recibir la respuesta del servidor para imprimirlo por consola.
Deshabilita el campo de entrada y el botón de enviar después de enviar el nombre para evitar que el cliente haga envios repetidos.
DESCONECTAR
Esta función se encarga de desconectar al cliente del servidor.
Si la conexión está activa (true), envía al servidor un mensaje para desconectarse y cierra el socket del cliente.
Después de desconectar, cambia el estado de conectado (false).
MAIN
Simplemente es el bloque de inicializacion de la aplicacion

Powered by INFORMATICA.FP.EDU.ES.