pythonsocket阻塞模式怎么确保数据recv?

默认分类 未结 1 1541
_Fashion_yoyo
_Fashion_yoyo 2023-03-19 17:18
相关标签:
1条回答
  • 2023-03-19 18:03

    可以通过setsockopt,或者更简单的setblocking,settimeout设置。阻塞式的socket的recv服从这样的规则:当缓冲区内有数据时,立即返回所有的数据;当缓冲区内无数据时,阻塞直到缓冲区中有数据。非阻塞式的socket的recv服从的规则则是:当缓冲区内有数据时,立即返回所有的数据;当缓冲区内无数据时,产生EAGAIN的错误并返回(在Python中会抛出一个异常)。两种情况都不会返回空字符串,返回空数据的结果是对方关闭了连接之后才会出现的。

    0 讨论(0)
提交回复