我正在使用python寫一個簡單的web服務器,並向它發送請求。我使用libevent作爲我的http客戶端。但每次我發送保持活動請求時,http連接在成功回調之前都有關閉回調。我認爲這可能是保持活力的問題。這是我的Python(服務器)代碼:python socket句柄keepalive請求
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保持活動狀態和TCP保持活動狀態。我使用** BaseHTTPServer **解決了這個問題。但我仍然很好奇如何支持HTTP保持活動使用上面的代碼。我試圖添加**內容長度**和**連接**標題,但它仍然無法正常工作。 –
@XiaoyingWang:我不知道你是如何試圖做到這一點的(沒有代碼),所以我無法幫忙。我建議用代碼問一個新問題。 –