Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Problema enviar datos entre cliente y servidor #358

Open
7 tasks done
Crisax234 opened this issue Dec 10, 2021 · 8 comments
Open
7 tasks done

Problema enviar datos entre cliente y servidor #358

Crisax234 opened this issue Dec 10, 2021 · 8 comments
Assignees
Labels
Tarea 3 Dudas sobre la T3

Comments

@Crisax234
Copy link

Crisax234 commented Dec 10, 2021

Prerrequisitos

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

  • Leí las reglas del foro (https://github.com/IIC2233/syllabus/issues/1)
  • Busqué en las issues si ya preguntaron mi duda y no encontré nada parecido (https://github.com/IIC2233/syllabus/issues)
  • Revisé el compilado de dudas de la tarea y no encontré una issue similar a la mía (Duda SOLES_ROBADOS Syllabus#293)
  • Mi duda no se trata sobre una librería, built-in o mala práctica, ya que eso se pregunta en la issue creada para ello.
  • Mi duda no se trata de un tema administrativo o personal, ya que en ese caso debo contactar a mi profe, al Jefe de Bienestar o al correo del curso (https://iic2233.github.io/contacto/)
  • Utilizaré un título descriptivo y llenaré correctamente esta plantilla
  • De ser necesario, solo colocaré código simple que permita explicar mi problema o duda, ya que compartir código de esta evaluación puede ser considerado copia

Duda

Hola tengo una duda con mi código cuando quiero enviar datos al servidor una vez que el cliente ya se conecto, utilizo threads para escuchar lo que llegue al servidor por parte de un socket y viceversa, la primera vez que envió algo al servidor este me responde sin problemas, sin embargo cuando quiero enviar algo al servidor nuevamente de la misma forma (específicamente cuando un jugador reta a otro), el servidor no recibe nada y tampoco me da ningun error, como si ya no fuera capaz de recibir mensajes por el cliente, como podría solucionarlo?

De antemano muchas gracias

@Crisax234 Crisax234 added the Tarea 3 Dudas sobre la T3 label Dec 10, 2021
@eliseolopez20 eliseolopez20 self-assigned this Dec 10, 2021
@eliseolopez20
Copy link

eliseolopez20 commented Dec 10, 2021

Hola @Crisax234
Si tu servidor solo puede recibir un mensaje y después no recibe, probablemente esta fallando en la forma de que el thread reciba mensajes constantemente, dado que si no usas eso correctamente la función de recibir solo corre una vez y finaliza.
Recomiendo revisar los ejemplos de la semana-12 para ver como usualmente se soluciona ese problema.
Quedo atento si no se soluciona el problema

@Crisax234
Copy link
Author

Si lo pude solucionar y el servidor me escucha el mensaje, sin embargo me aparece este error:

Exception in thread Thread-2:
Traceback (most recent call last):
File "C:\Users\crist\AppData\Local\Programs\Python\Python38\lib\threading.py", line 932, in _bootstrap_inner
self.run()
File "C:\Users\crist\AppData\Local\Programs\Python\Python38\lib\threading.py", line 870, in run
self._target(*self._args, **self.kwargs)
File "c:\Users\crist\Crisax234-iic2233-2021-2\Tareas\T3\servidor\servidor.py", line 84, in listen_client_thread
dict_recibido = json.loads(dict_comando.decode('utf-8'))
File "C:\Users\crist\AppData\Local\Programs\Python\Python38\lib\json_init
.py", line 357, in loads
return _default_decoder.decode(s)
File "C:\Users\crist\AppData\Local\Programs\Python\Python38\lib\json\decoder.py", line 340, in decode
raise JSONDecodeError("Extra data", s, end)
json.decoder.JSONDecodeError: Extra data: line 1 column 33 (char 32)

lo busque pero no entiendo muy bien qué significa en mi código, que puede estar provocándolo?

@eliseolopez20
Copy link

No logre encontrar el error, porque creo que no tienes tu repo personal actualizado. Sin embargo, encontre un par de respuestas en google que podrían ayudarte a encontrar el error, que podría ser por como esta definido tu archivo JSON link1 y link2

@Crisax234
Copy link
Author

Perdon ahora lo acabo de actualizar, la cosa es que no es al cargar el archivo json, sin que cuando le hago un json.loads a un comando que envio

@eliseolopez20
Copy link

Revisando tu código, creo que el error esta en el tipo de dato de dict_comando de la función listen_thread en cliente.py. Te recomiendo usar print(type()) para ver que tipo de datos estas usando y si es el que quieres usar para poder manejar el mensaje que deseas enviar. Recomiendo revisar los contenidos de la semana-11 que muestran como trabajar con los distintos tipos de datos.
Espero haberte ayudado

@Crisax234
Copy link
Author

Ya entendí por que no funciona pero no logro decifrar por que el diccionario que quiero mandar se repite tantas veces cuando lo paso a bytes siendo que hago eso solo una vez :/

@Crisax234
Copy link
Author

Ya lo pude resolver muchas gracias por tu tiempo!

@eliseolopez20
Copy link

Que bueno, mucho ánimo con lo que queda de semestre!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Tarea 3 Dudas sobre la T3
Projects
None yet
Development

No branches or pull requests

2 participants