Closed amahns1 closed 3 years ago
Hola @amahns1,
Dado que solo existe un canal de comunicación entre un cliente y el servidor, cada vez que envíes algo la otra parte tendrá que identificar qué tipo de información está recibiendo. En otras palabras, debes enviar data y "meta-data", y según la "meta-data", el programa deberá direccionar correctamente a la data que se recibe. Por ello, sería normal que el método que reciba la información tenga muchos ifs, direccionando la data enviada a donde correctamente debe ir.
Así, puedes enviar, por ejemplo, un item de un diccionario siendo la key la metadata y el value la data, o una tupla o lista de tamaño 2. No es necesario enviar siempre toda la información, sino que solamente la que se va modificando.
Espero esto te sea de ayuda
Sii Gracias @lucasprato!
Prerrequisitos
(Marcar colocando una X entre los corchetes los ítems que ya hiciste, así: "[X]")
¡Hola!
Me surgió una duda para implementar una comunicación efectiva entre
servidor
ycliente
. Hasta ahora estoy almacenando la información en distintos diccionarios en elservidor
. Por ejemplo, para enviar alcliente
los datos necesarios al inicio de la partida (como los son el nombre, color y rivales), envío la información de maneras distintas para que elcliente
pueda diferenciar lo que se está enviando. Me complica el hecho que siento que estoy haciendo un caso particular para cada cosa que se envía y siento que al avanzar en la tarea va a generar muchas complicaciones.Otro punto que me complica es ir actualizando la información. En el
servidor
bastaría con actualizar los diccionarios, pero en elcliente
es distinto. Enviar el diccionario completo alcliente
a cada turno pareciera ser una opción válida pero no muy conveniente. Enviar una parte del diccionario es quizás más simple pero es complicado que elcliente
entienda qué era lo que estaba antes y qué es nuevo.Cuando el
cliente
escucha elservidor
, lo hace mediante unloop
. Entonces estoy haciendo casos particulares para que pueda diferenciar lo que se está enviando en cada "iteración" delloop
.¿Qué estrategias pueden usarse para que la comunicación entre
cliente
yservidor
sea efectiva y que no se generen casos particulares?Muchos saludos.