.. module:: eco_classe ===================== Classe servidor d'eco ===================== La classe :class:`ServidorEco` escolta connexions TCP i manté un recompte de quants clients s'han connectat des de l'inici del servei. Per cada connexió, el servidor ha de retornar al client cada línia de text rebuda. La implementació del servdor s'ha de basar en :mod:`asyncio.streams`. Dissenya la classe següent i desa-la al mòdul :mod:`eco_classe` (fitxer :file:`eco_classe.py`). .. class:: ServidorEco(host: str, port: int) Servidor d'eco que escolta pel `port` del `host`. Manté un comptador de clients connectats. .. rubric:: Atributs .. attribute:: nombre_clients :type: int Nombre de clients connectats des que s'ha engegat el servidor. .. rubric:: Mètodes .. method:: gestiona_eco(reader: asyncio.StreamReader, writer: asyncio.StreamWriter) :async: Incrementa :attr:`nombre_clients`, llegeix línia a línia de `reader` i respon per `writer` el mateix missatge que ha rebut fins que la connexió del `reader` es tanca. Tanca el `writer` i decrementa :attr:`nombre_clients`. .. method:: serveix() :async: Engega el servidor i el manté actiu. Ha de garantir un tancament net del servidor. .. admonition:: Tests La teva solució ha de passar els tests de :download:`test_eco_classe.py`.