IIC2233 / Syllabus

149 stars 13 forks source link

Servidor no espera conexiones #650

Open gracie-14 opened 3 days ago

gracie-14 commented 3 days ago

Prerrequisitos

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

Duda

Hola!

Al intentar ejecutar el servidor, el código para de ejecutar sin mostrarme ningún error y sin esperar ningún cliente. En la parte de conectar al servidor, basé mi código fuertemente en la Experiencia 3.

Puse algunos prints dentro de ciertas funciones (métodos como bind_and_listen y accept_connections) pero cuando hice esto, recibí un Fatal Python Error por hacer print con varios threads... pero esto no tiene sentido, porque no debe haber varios threads todavía, puesto que ningún cliente se ha conectado, así que no debe haber más de un thread escuchando conexiones.

Basándome en los prints sé que el código llega hasta el while loop dentro del hilo que accepta conexiones. Algo está saliendo mal con el método accept()porque se supone que esté congelado hasta que haya un cliente... ¿Me pueden ayudar a entender el error? Gracias!

javp22 commented 3 days ago

Hola @gracie-14 !

Probé el código de la experiencia 3 y me funciona. Podrías describir muy por encima los cambios realizados al servidor de la experiencia?

gracie-14 commented 3 days ago

También me está funcionando la Experiencia 3, es solo mi servidor para la Tarea 4 que no está funcionando.

Aparte de añadir algunos atributos más para otros métodos, por lo que sepa no hice ningún cambio a los métodos para hacer bind, listen y accept. Por eso estoy confundida. No sé por qué el accept no espera un cliente. Claro que hice algún cambio importante pero no lo puedo encontrar, según yo parecen casi iguales.

He subido todo a mi repositorio por si eso ayuda, esta parte está en el archivo main.py en la carpeta servidor.

javp22 commented 3 days ago

Por alguna razón tu servidor se cierra inmediatamente después de iniciarlo, estaré revisando el código para ver si encuentro la razón.

javp22 commented 3 days ago

Ya encontré el problema, te faltó añadir las lineas finales de la experiencia a tu código, que son para mantener el programa activo, esta debería ser la razón por la que tu programa se cierra automáticamente. Avísame si te funciona.

gracie-14 commented 3 days ago

Me funcionó! Muchas gracias por la ayuda!

javp22 commented 3 days ago

Genial!