socket.recv()没接收到数据前,再次调用socket.recv() 会怎么样?
时间: 2023-12-13 18:05:45 浏览: 322
python网络编程调用recv函数完整接收数据的三种方法
当调用 socket.recv() 时,如果没有数据可供接收,它将会阻塞并等待数据到达。这意味着在没有数据到达之前,socket.recv() 将一直阻塞,直到有数据可供接收或发生超时。
如果你再次调用 socket.recv(),它将继续阻塞并等待数据到达。这样的行为可以用于持续接收数据流,直到数据流结束或发生错误。
需要注意的是,如果你希望在等待数据的同时执行其他操作或设置超时时间,可以使用非阻塞模式的套接字和 select.select() 方法来实现,如我之前提到的示例代码所示。这样你可以控制接收操作的阻塞和超时行为。
阅读全文