pynng.exceptions.TryAgain: Try again
时间: 2024-04-26 19:25:25 浏览: 38
pynng.exceptions.TryAgain 异常通常表示当前操作无法立即完成,需要稍后再试。这通常发生在使用非阻塞模式的 socket 对象时,当你尝试进行某些 I/O 操作,但是该操作当前无法立即完成时,就会抛出这个异常。你可以通过等待一段时间后再次尝试操作来解决这个问题,或者使用阻塞模式的 socket 对象来确保操作可以立即完成。另外,你也可以在捕获 TryAgain 异常时进行重试,直到操作成功完成为止。
相关问题
def mm2(func): """ 装饰器:循环执行发送/接收,直至成功 """ @wraps(func) def wrapper(*args, **kwargs): while True: try: result = func(*args,**kwargs) break except pynng.exceptions.Timeout: print(func.__name__,'Timeout') continue except pynng.exceptions.TryAgain: print(func.__name__,'TryAgain') continue return result return wrapper() import time from functools import wraps @mm2 def test(n): print(n) if __name__=='__main__': test('1254')
这段代码是一个装饰器函数,名为`mm2`,作用是循环执行函数,直至成功为止。在代码中,使用了`@wraps(func)`来保留被装饰函数的元信息。然后定义了一个无限循环,不断执行被装饰函数,如果执行成功,则跳出循环并返回结果;如果抛出了`pynng.exceptions.Timeout`或`pynng.exceptions.TryAgain`异常,则捕获异常并继续循环执行。最后,返回被装饰函数的执行结果。在代码最后,调用了`test`函数,并传入参数`'1254'`。
pynng.exceptions.ProtocolError: Protocol error
这个错误通常表示在使用 pynng 库时发生了协议错误。pynng 是一个网络库,用于创建和管理不同类型的网络连接。如果在使用该库时出现了协议错误,可能是因为你的代码在尝试使用不支持的协议或协议版本。你可以检查你的代码是否正确地配置了网络连接,并使用正确的协议和协议版本。如果仍然无法解决问题,你可以查看 pynng 的文档或联系该库的维护者以获取更多帮助。
阅读全文