Python非阻塞套接字关闭:可以引发BlockingIOError吗?

时间:2018-12-23 15:04:57

标签: python-3.x sockets python-asyncio

如果您关闭非阻塞套接字:

sock.setblocking(False)
...
sock.shutdown(SHUT_RDWR)

是否有可能对shutdown的调用将引发BlockingIOError,如果是,在什么情况下?我没有经历过这种情况,但这(当然)并不意味着它不会发生。

1 个答案:

答案 0 :(得分:1)

根据POSIXLinux文档,shutdown无法返回EWOULDBLOCK或等效错误。因此,异步库使no provisions处理此类结果。

尽管shutdown()向对等方传输(元)数据,但是您可以认为shutdown即将退出,而操作系统在幕后进行了实际工作。 close()的工作方式大致相同。