Хотите принять как можно больше клиентов в сроки - PullRequest
0 голосов
/ 07 января 2019

Я пишу программу, которая позволяет компьютерам в сети Wi-Fi подключаться к ней, через определенный промежуток времени он больше не должен принимать подключения и быть готовым отправить сообщение всем подключенным клиентам

Я пробовал цикл 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

1 Ответ

0 голосов
/ 07 января 2019

Вы можете либо поместить цикл 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
...