import asyncio

async def manejar_cliente(reader, writer):
    addr = writer.get_extra_info('peername')
    print(f"📡 Conexión desde {addr}")

    while True:
        data = await reader.read(100)
        if not data:
            print(f"❌ Cliente {addr} desconectado")
            break
        mensaje = data.decode()
        print(f"📨 Mensaje de {addr}: {mensaje}")
        writer.write(f"✅ Recibido: {mensaje}".encode())
        await writer.drain()

    writer.close()
    await writer.wait_closed()

async def main():
    server = await asyncio.start_server(manejar_cliente, '127.0.0.1', 8888)
    addr = server.sockets[0].getsockname()
    print(f"🚀 Servidor escuchando en {addr}")

    async with server:
        await server.serve_forever()

asyncio.run(main())