У меня возникли проблемы с подключением моего веб-сервера к моему питону, и если я это сделаю, он сразу перейдет к IOError и напечатает 404 Not Found вместо печати имеющегося у меня html-файла.
Я пыталсяЗапуск этого кода и исправление его в течение многих дней, но я просто не могу понять проблему. Я попробовал его на разных компьютерах, а затем на одном компьютере, и все, что я получил, это то, что он перейдет к 404. Не найдено.
Я использовал 127.0.0.1:6789/helloworld.html для его подключения.
import sys
serverPort = 6789
serverSocket = socket(AF_INET, SOCK_STREAM)
#serverName = ''
serverSocket.bind(("",serverPort))
serverSocket.listen(1)
print ('the web server is up on port: ', serverPort)
while True:
#Establish the connection
print('Ready to serve...')
(connectionSocket, addr) = serverSocket.accept()
print("connection is from: " + str (addr))
try:
message = connectionSocket.recv(1024).decode()
filename = message.split()[1]
f = open(filename[1:])
outputdata = f.read()
print ("output data is: ",outputdata)
connectionSocket.send(('HTTP/1.1 200 OK\r\n').encode())
connectionSocket.send(message.encode())
outputdata = f.read()
for i in range(0, len(outputdata)):
connectionSocket.send(outputdata[i].encode())
connectionSocket.send(("\r\n").encode())
connectionSocket.close()
except IOError:
connectionSocket.send(('HTTP/1.1 404 Not Found\r\n\r\n').encode())
connectionSocket.send(("<html><body><h1> 404 Not Found </h1></body></html>\r\n\r\n").encode())
connectionSocket.close()
serverSocket.close()
sys.exit()
Затем html-файл, который я храню, сохраняется в той же папке, что и этот webserver.py, как helloworld.html
<!DOCTYPE html>
<html>
<body>
<h1> Hello World </h1>
<h2> How are you? </h2>
</body>
</html>
Я ожидал, что он будет запущен в браузере как Hello Worldвы, но фактический ввод был пропущен до 404. Not Found.