Я пытаюсь написать простой http-сервер.Я хочу, чтобы он работал для заголовка Connection: keep-alive
, поэтому я хочу убедиться, что у connection.recv()
будет время ожидания.Я пробовал socket.settimeout(timeout)
метод, но он закрывает соединение через timeout
промежуток времени, даже если данные получены.Я хочу что-то вроде:
while True:
try:
#start to wait for timeout seconds
request = conn.recv(256, timeout)
process()
#if there is no keep-alive header end the operation
if "keep-alive" not in request:
conn.close()
break
else:
#if there was a keep alive header start getting the data
continue
except:
#this means timeout seconds passed after recv() was called
conn.close()
break
Какой лучший способ сделать это?