Я пытаюсь отправить клиенту сообщение об ошибке, когда время ожидания сервера истекло через 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)