简单的python webserver套接字编程

2024-10-06 20:27:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我很难让我的Web服务器连接到python,如果我连接到python,它会直接转到IOError并打印出404notfound,而不是打印我的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 How are you,但实际输入被跳过到404 Not Found


Tags: sendmessagecloseishtmlnotbodyh1