Yourmind
@Yourmind
пишу говнокод в перерывах между едой и сериалами

Как создать таймер для клиента?

У меня есть сервер к которому подключаются клиенты. Как сделать для каждого клиента таймер, что в случае если с его адреса не поступает никакого сообщения пусть к примеру 30 с то вызывалась функция foo() (которая что нибудь у нас подчищает в списках и т д)
import socket
import socketserver
import threading
import time


#обработчик запросов
class TCPRequestHandler(socketserver.BaseRequestHandler):
    def handle(self):
        #инфа что мы получили
        date=self.request.recv(1024)
        #получаем результат обработки запроса в виде словаря
        answer=result(date,self.client_address)
  

class ThreadedTCPServer(socketserver.ThreadingMixIn, socketserver.TCPServer):
    pass


if __name__ == "__main__":
    #адрес и порт нашего сервера
    HOST, PORT = "localhost", 9001
    server = ThreadedTCPServer((HOST, PORT), TCPRequestHandler)
    server_thread = threading.Thread(target=server.serve_forever)
    server_thread.daemon = False
    server_thread.start()
#чтобы сервер закрылся только при исключении, например прерывании с клавиатуры
    while True:
        try:
            time.sleep(1)
        except:
            break
    server.shutdown()
    server.server_close()
  • Вопрос задан
  • 80 просмотров
Решения вопроса 1
tumbler
@tumbler Куратор тега Python
бекенд-разработчик на python
У вас уже есть time.sleep(1). Для каждого клиента запоминаете, когда он подключился, а в бесконечном цикле ищете и обрабатываете "протухших".
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы