Я использую localhost с номером порта 6789 для тестирования моего веб-сервера. Это работает, когда я отправляю первый запрос, чтобы найти файл, который существует или файл, который не существует. Когда я пытаюсь отправить второй запрос сразу после этого, я получаю IndexError: список индекса выходит за пределы диапазона:
f = open (имя файла [1:])
Мое соединение постоянно, но я Я не уверен, если я должен отправить один запрос за один раз.
Мой код
import socket
import sys # In order to terminate the program
serverPort = 6789
serverSocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
#Prepare a sever socket
serverSocket.bind(('',serverPort))
serverSocket.listen(1)
while True:
#Establish the connection
print('Ready to serve...')
connectionSocket, addr = serverSocket.accept()
try:
message = connectionSocket.recv(1024)
filename = message.split()[1]
f = open(filename[1:])
outputdata = f.read()
#Send one HTTP header line into socket
connectionSocket.send(bytes('HTTP/1.1 200 OK\r\n\r\n',"UTF-8"))
#Send the content of the requested file to the client
for i in range(0, len(outputdata)):
connectionSocket.send(outputdata[i].encode())
connectionSocket.send("\r\n".encode())
connectionSocket.close()
except IOError:
print("404 not found")
connectionSocket.send(bytes('HTTP/1.1 404 NOT FOUND\r\n\r\n',"UTF-8"))
connectionSocket.close()
serverSocket.close()
sys.exit()