Простое программирование сокетов Python Webserver - PullRequest
0 голосов
/ 11 октября 2019

У меня возникли проблемы с подключением моего веб-сервера к моему питону, и если я это сделаю, он сразу перейдет к 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...