Python: Как определить время ожидания? - PullRequest
0 голосов
/ 27 марта 2020

Я пытаюсь отправить клиенту сообщение об ошибке, когда время ожидания сервера истекло через 5 секунд после выполнения запроса. Поэтому я могу отправить еще один запрос от клиента.

    while True:

        # receive a message from the client
        data_from_client = csockid.recv(1024)
        word = data_from_client.decode('utf-8').lower()

        if word == '':

            break

        print('[Client]: ' + word)
        print("[ls Server]: Sending " + word + " to ts1 & ts2 for Query....")

        ts1.settimeout(5)

        ts1.send(word.encode('utf-8'))

        search_from_ts1 = ts1.recv(1024)
        ts1_server_answer = search_from_ts1.decode('utf-8')

        print("[ls Server]: sending reply from ts1 server " + ts1_server_answer + " to Client")
        csockid.send(ts1_server_answer.encode('utf-8'))

        if ts1.settimeout(5) == True:

            errmsg = "ERROR-TIMEDOUT!"
            csockid.send(errmsg.encode('utf-8'))

        if not data_from_client:

            break

Я пробовал это, как вы можете видеть, но это не работает. Я не знаю, как определить, истекло ли время ожидания, чтобы я мог отправить сообщение об ошибке. Что я могу сделать, чтобы решить эту проблему?

        if ts1.settimeout(5) == True:

            errmsg = "ERROR-TIMEDOUT!"
            csockid.send(errmsg.encode('utf-8'))

Поскольку клиент ожидает ответа от сервера либо на строку сообщения об ошибке, либо на запрос успешной строки. Я получаю эту ошибку

    self._target(*self._args, **self._kwargs)
  File "client2.py", line 61, in client
    reply_from_server = cs.recv(1024)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...