ソケット ライブラリを使用して Python Web サーバーを作成しようとしています。私はいくつかの情報源を調べてきましたが、私が書いたコードが機能しない理由がわかりません。他の人は非常によく似たコードを実行し、それが機能すると主張しています. 私はpythonが初めてなので、簡単なものが欠けているかもしれません。
これが機能する唯一の方法は、データ変数をクライアントに送り返すことです。ブラウザーは元の 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()