IIC2233 / Syllabus-2022-1

Repositorio oficial del curso IIC2233 Programación Avanzada 🚀✨
https://iic2233.ing.puc.cl/
45 stars 40 forks source link

Duda limitar cantidad de clientes conectados al servidor #262

Open FranciscoPinto1138 opened 2 years ago

FranciscoPinto1138 commented 2 years ago

Prerrequisitos

(Marcar colocando una X entre los corchetes los ítems que ya hiciste, así: "[X]")

Duda

Holaa, estoy intentando limitar la cantidad de jugadores que pueden conectarse al servidor (máximo 4 según enunciado). Para esto intenté poner un "if" al momento de usar socket.accept() y así dejar de aceptar cuando hubiera cierto número de conexiones. A su vez, intenté notificar al usuario en cliente usando un except ConnectionRefusedError para cuando se negara la conexión del servidor, pero esta excepción no ocurre. ¿Cómo hago para que el cliente se entere de que su conexión ha sido denegada? Para no mostrar tanto mi código hice un push de esto y cambié el número de jugadores máximo en parametros.json a 0 y así facilitar la revisión :) Muchas gracias de antemano.

Francisco-Aguilera-xd commented 2 years ago

Hola! Estuve revisando tu código, y creo que lo mejor que puedes hacer para informarle al cliente que no se puede conectar, es crear un comando en tu diccionario de comandos que le diga al cliente que la conexión a sido rechazada. Esto es porque no podrás "enviar un error al cliente", en vez, puedes enviar desde el servidor un mensaje que detone en el cliente un error si llega ese mensaje en particular. Por ejemplo podrías crear un diccionario que sea:

{ "comando": "error_max_clientes", }

y que el cliente reaccione a este comando levantando un error:

if comando == "error_max_clientes": raise ConnectionRefusedError

Espero que se haya entendido la idea