在python套接字上在阻塞和非阻塞之间切换

在python套接字上在阻塞和非阻塞之间切换,python,sockets,Python,Sockets,我想以阻塞模式开始对话,然后切换到非阻塞模式。 这是个愚蠢的想法吗 python文档对此有点模棱两可,上面说: 。。。您在创建套接字之后,但在使用它之前执行[setblocking0]。事实上,如果你疯了,你可以来回切换 我把这读作“请不要那样做”,所以我想知道是否有理由不鼓励这样做。 是否存在某种未定义的行为,我会遇到什么问题?是的,您可以这样做,但大多数人使用线程执行多个阻塞套接字或使用事件循环执行多个非阻塞套接字。但在两者之间切换应该没有问题,只要您不在缓冲和非缓冲I/O之间切换。阻塞和非

我想以阻塞模式开始对话,然后切换到非阻塞模式。 这是个愚蠢的想法吗

python文档对此有点模棱两可,上面说:

。。。您在创建套接字之后,但在使用它之前执行[setblocking0]。事实上,如果你疯了,你可以来回切换

我把这读作“请不要那样做”,所以我想知道是否有理由不鼓励这样做。
是否存在某种未定义的行为,我会遇到什么问题?

是的,您可以这样做,但大多数人使用线程执行多个阻塞套接字或使用事件循环执行多个非阻塞套接字。但在两者之间切换应该没有问题,只要您不在缓冲和非缓冲I/O之间切换。

阻塞和非阻塞套接字是不同的编程模型

在它们之间切换会使程序过于复杂