我想寫一個使用套接字庫的python web服務器。我已經通過了幾個來源,不知道爲什麼我寫的代碼不起作用。其他人已經運行了非常類似的代碼並聲稱它可行。我是python的新手,所以我可能會錯過簡單的東西。簡單的Python Web服務器故障
它現在可以工作的唯一方法是將數據變量發送回客戶端。瀏覽器打印原始的GET請求。當我嘗試發送HTTP響應時,連接超時。
import socket
##Creates several variables, including the host name, the port to use
##the size of a transmission, and how many requests can be handled at once
host = ''
port = 8080
backlog = 5
size = 1024
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((host,port))
s.listen(backlog)
while 1:
client, address = s.accept()
data = client.recv(16)
if data:
client.send('HTTP/1.0 200 OK\r\n')
client.send("Content-Type: text/html\r\n\r\n")
client.send('<html><body><h1>Hello World</body></html>')
client.close()
s.close()
當你嘗試運行它時會發生什麼[除了這樣做是爲了學習套接字和/或HTTP,你在做什麼是一個壞主意] – 2012-04-11 18:33:15
當我運行它時,shell彈出並等待,直到我鍵入localhost:8080進入瀏覽器。當我這樣做時,外殼關閉。過了一會兒,瀏覽器顯示連接超時。正如我前面提到的,如果我只向客戶端發送數據變量,則Web瀏覽器將顯示GET請求。 – egoskeptical 2012-04-11 18:43:49