希望在时间范围内接受尽可能多的客户



我正在编写一个程序,允许wifi网络中的计算机连接到它,一段时间后它应该不再接受连接并准备向所有连接的客户端发送消息

我已经尝试了一段时间循环,但我找不到限制时间的方法

这是我当前的代码: 导入套接字

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
您可以

根据时间条件放置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

在带有breakwhile循环中:

start = dt.datetime.utcnow()
while True:
    if dt.datetime.utcnow() - start > dt.timedelta(seconds=600):
        break  # end the loop after 10 mins
    # your code

最新更新