我正在编写一个程序,该程序允许wifi网络中的计算机连接到它,在一段时间后,它应该不再接受连接并准备向所有连接的客户端发送消息
我尝试了while循环,但是找不到时间限制方法
这是我当前的代码: 导入套接字
connections = []
s = socket.socket()
host = socket.gethostname()
port = 8080
s.bind((host, port))
s.listen(1)
print(".....")
while True:
conn, addr = s.accept()
connections.append([conn, addr])
connections[-1][0].send("welcome".encode())
#after a certain amount of time I want that loop to stop and wait for a
command to be typed or some other input method
答案 0 :(得分:1)
您可以根据时间条件放置while
循环,也可以检查循环中的时间,如果超过时间则检查break
。
while
基于时间条件的循环:
import datetime as dt
start = dt.datetime.utcnow()
while dt.datetime.utcnow() - start <= dt.timedelta(seconds=600): # 600 secs = 10 mins
# your code
在while
循环中,带有break
:
start = dt.datetime.utcnow()
while True:
if dt.datetime.utcnow() - start > dt.timedelta(seconds=600):
break # end the loop after 10 mins
# your code