Open Crisax234 opened 2 years ago
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
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?
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
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
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 :/
Ya lo pude resolver muchas gracias por tu tiempo!
Que bueno, mucho ánimo con lo que queda de semestre!
Prerrequisitos
(Marcar colocando una X entre los corchetes los ítems que ya hiciste, así: "[X]")
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