Я использую python для написания простого веб-сервера и отправки ему запросов. И я использую libevent как мой клиент http. Но каждый раз, когда я отправляю запрос keep-alive, http-соединение имеет закрытый обратный вызов до успешного обратного вызова. Я думаю, что это может быть проблемой поддержания жизни. И это мой питон (сервер) Код:python socket handle keepalive request
import socket
HOST, PORT = '', 8999
listen_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
listen_socket.setsockopt(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1)
listen_socket.setsockopt(socket.SOL_TCP, socket.TCP_KEEPIDLE, 60)
listen_socket.setsockopt(socket.SOL_TCP, socket.TCP_KEEPCNT, 4)
listen_socket.setsockopt(socket.SOL_TCP, socket.TCP_KEEPINTVL, 15)
listen_socket.bind((HOST, PORT))
listen_socket.listen(1)
print 'Serving HTTP on port %s ...' % PORT
while True:
client_connection, client_address = listen_socket.accept()
request = client_connection.recv(1024)
print request
http_response = """\
HTTP/1.1 200 OK
Hello, World!
"""
client_connection.sendall(http_response)
client_connection.close()
Спасибо, я действительно перепутал HTTP keep-alive и TCP keep-alive. И я использую ** BaseHTTPServer **, решил проблему. Но мне все еще интересно, как поддерживать поддержку HTTP-содержимого с помощью вышеуказанного кода. Я попытался добавить ** Content-Length ** и ** Connection ** заголовки, но он по-прежнему не работает. –
@ XiaoyingWang: Я понятия не имею, как вы пытались это сделать (без кода), поэтому я не могу помочь. Я рекомендую задать новый вопрос с кодом. –