python - While 循环 10 秒并阻塞
问题描述
我有一个应该只运行 10 秒的循环,但是在循环内部我使用了一个阻塞函数,所以循环不会在 10 秒后中断,而只是在阻塞函数之后。
endtime = time.time() + 10
while time.time() < endtime:
clientsocket, address = tcpServer.accept() # blocking
print("got another client!")
name = clientsocket.recv(1024)
print("bye")
我想在 10 秒后离开循环,但如果我在 10 秒过去之前进入它并且没有人试图连接,我就不会离开。
我该如何解决这个问题?
解决方案
您应该在 tcp 实例中设置超时,如下所示:
tcpServer.settimeout(10)
推荐阅读
- python - 是否可以在没有错误处理程序的情况下为 CommandInvokeError 设置异常?
- android - 有什么方法可以在android中使用mysql Dump文件作为数据库源
- xodus - Store.putRight(..) 和键选择的最佳实践
- r - 我该如何解决:`[.data.frame`(m, labs) 中的错误:选择了未定义的列
- c# - Asp.net core 我可以添加图片,但我不能删除图片
- php - 查找时删除 php 中的单词 -
- jenkins - 即使 shell 脚本返回非零值,声明性 Jenkinsfile 也不会退出
- office365 - 如何以编程方式检测 Office 2019?
- .net-core - 使用 EntityFrameworkCore 2.1 在运行时搭建脚手架数据库
- java - 空行从哪里来?如何删除它?- 爪哇