Заголовок ответа должен содержать код ответа, указывающий на успех.
Перед строкой Content-Type добавить:
client.send('HTTP/1.0 200 OK\r\n')
Кроме того, чтобы сделать тест более заметным, поместите на страницу немного контента:
client.send('<html><body><h1>Hello World</body></html>')
После отправки ответа закройте соединение с помощью:
client.close()
и
sock.close()
Как отмечали другие авторы, заканчивайте каждую строку \r\n
вместо \n
.
Будут ли эти дополнения, мне удалось запустить успешный тест. В браузере я ввел localhost:8080
.
Вот весь код:
import socket
sock = socket.socket()
sock.bind(('', 8080))
sock.listen(5)
client, adress = sock.accept()
print "Incoming:", adress
print client.recv(1024)
print
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()
print "Answering ..."
print "Finished."
sock.close()