es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Problemas de Python asyncio

Probé el siguiente código con Ncat. Solo envía un mensaje único, luego no envía nada y no excepciona. Tampoco está leyendo nada.

No tengo idea de qué podría estar pasando. No hay ninguna excepción y no parece que se esté enviando ningún dato.

import asyncio

loop = asyncio.get_event_loop()

class Client:

    def __init__(self):
        self.writer = None
        self.reader = None

    async def connect(self, address, port):
        reader, writer = await asyncio.open_connection(address, port)
        self.reader = reader
        self.writer = writer
        print("¡Conectado!")

    async def send(self, message):
        print("Escribiendo " + message)
        self.writer.write((message + '\n').encode())
        await self.writer.drain()

    async def receive(self):
        print("Recibiendo")
        message = (await self.reader.readuntil('\n'.encode())).decode()
        return message

    async def read_loop(self):
        while True:
            incoming = await self.receive()
            print("Remoto: " + incoming)

async def main():
    client = Client()
    await client.connect("127.0.0.1", 31416)

    loop.create_task(client.read_loop())

    while True:
        text = input("Mensaje: ")
        await client.send(text)

loop.run_until_complete(main())
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Es difícil determinar el problema exacto sin más información, pero aquí hay algunos problemas potenciales y cosas para verificar:

    • Verifique que el servidor al que está intentando conectarse aún esté en funcionamiento y escuchando en el puerto correcto.
    • Asegúrese de que no haya firewalls o configuraciones de red que bloqueen su conexión.
    • Verifique que Ncat pueda recibir y mostrar el mensaje que está enviando.
    • Verifique que el mensaje de entrada esté funcionando correctamente y que pueda ingresar mensajes para enviar.
    • Intente agregar registros o declaraciones de impresión para confirmar que el código se esté ejecutando como se espera y dónde podría estar bloqueado.
    • Verifique si hay errores o excepciones que se estén silenciando o registrando en otro lugar.

Comments are closed.