python - 当socket.recv没有数据时Python inifite循环
问题描述
我有一个普通的普通套接字,可以发送和接收数据。当存在高延迟并且需要一段时间才能获取数据时,就会出现问题。例如,我将拥有:
s.recv(1024)
但到它执行时,只有 700 个字节可用。所以我必须再做一次才能得到剩下的。但关键是:有时它会更快,而第二个s.recv(1024)
会在没有数据到来时等待数据。在那种情况下,它会陷入一个很长很长的循环中,我什至无法使用 Ctrl+C 中断。问题是,我怎样才能防止这个循环?如果没有可用数据,有没有办法引发异常?
解决方案
推荐阅读
- php - 呼叫 URL 友好的正确链接
- autocomplete - Visual Studio 2019 中的自动完成/智能感知损坏
- c++ - std::string 的 C++ c_str 返回空
- javascript - 如何修复代码不移动类别下的频道
- javascript - 根据 ID 设置 React 组件的样式
- firebase - 找不到文件时,FlutterFire Storage 重新抛出 PlatformException
- python - 如何获取 youtube_dl 下载的路径?
- android - 从不同页面返回 null 的文本
- ethereum - 我的主网 geth 快速同步会赶上吗?
- android - Angular 应用程序的 Android 模拟器中的 Cordova 错误