IIC2233 / Syllabus

149 stars 13 forks source link

Duda sobre WinError 10054 y código #666

Open agomezh20 opened 2 days ago

agomezh20 commented 2 days ago

Prerrequisitos

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

Duda

[Describe tu duda de manera detallada, explicando qué cosas aparecen en el enunciado y cuáles no]

[De ser necesario, coloca tu pregunta de manera explícita utilizando este formato]

Holaa, intentando conectar el cliente con el servidor me aparece que se realizó la conexión pero me tira el error citado en el título y se finaliza la conexión con el cliente. El problema sucede en la función __recibir_bytes del servidor, en particular de la parte socket_cliente.recv(bytes_leer)__; la cual saqué del código de servidor en la Experiencia 3. Adjunto el output de la terminal:

Screenshot_2
IsidoraGuinez commented 2 days ago

Hola , se vio ese error en la issue #631 Si no lo puedes solucionar , me comentas

agomezh20 commented 1 day ago

Hola, si revisé esa duda pero mi problema es que el cliente se conecta al servidor, luego inmediatamente se desconecta y en la terminal del servidor sale el mensaje que adjunté :( Tengo pusheado mi código si es que eso ayuda

agomezh20 commented 1 day ago

Edit: Puedo obtener que el error está en el momento que el servidor le hace dumps del mensaje al cliente, por lo que salta Exception y desconecta por protocolo al cliente. Sin embargo, cuando cierro el servidor me sale ahora en la terminal del cliente el mismo error pero ahora en el cliente

IsidoraGuinez commented 1 day ago

No sé si te entiendo bien , pero te refieres a que si cierras la terminal del servidor , te sale error en el cliente ??

agomezh20 commented 1 day ago

Sí exactamente. Me salía el error de la primera foto en la terminar del servidor, pero ahora me sale el siguiente en el terminal del cliente

Screenshot_3

(esto cuando corto el servidor) (escribiendo prints, efectivamente el error está en la función recv)

IsidoraGuinez commented 1 day ago

Estaba mirando tu código y noté algunos detalles, según tu lógica primero estás intentando conectarte al servidor y llamas a listen que es una función que está comentada , después partes tu thread y después de nuevo en el try intentas conectarte al servidor . te recomiendo hacer una función tipo def conectar() y que dentro de ella intentes conectarte al servidor , cambiar tu variable de conectado a true y después de eso comenzar a escuchar tu thread. Para que te quede más ordenado y se mas fácil debuggear tu código

IsidoraGuinez commented 1 day ago

Y además cuando estes escuchando a el Servidor , te falta manejar el caso que el servidor se desconecte. Para lograr esto debes detectar cuando el servidor se caiga y salir.

agomezh20 commented 1 day ago

Hola, eliminé lo que estaba comentado, no quería inlcuirlo perdón. Encontré el error reescribiendo algunas cosas y me di cuenta que la función enviar_mensaje que estaba siendo llamada en manejar_mensaje solo recibía el parametro respuesta y le faltaba el parámetro __id_cliente__ Muchas gracias !!

IsidoraGuinez commented 1 day ago

Buenaaa :)