Depuis que je suis nouveau à la programmation, il peut y avoir d'autres erreurs dans le code que je n'ai pas détecté, donc si vous remarquez des erreurs ou un mauvais style en dehors. J'essaye de mettre en application un serveur Web simple, mais continue à obtenir une erreur d'indentation à la partie où le serveur crée un message de réponse HTTP composé du dossier demandé précédé par des lignes d'en-tête.'Indentation Error - attendu un bloc indenté' lors du traitement de l'en-tête
from socket import *
import sys
host = 'localhost'
serverPort = int(sys.argv[1])
serverSocket = socket(AF_INET, SOCK_STREAM)
serverSocket.bind((host,serverPort))
serverSocket.listen(1)
while True:
connectionSocket, addr = serverSocket.accept()
try:
#if received correct stuff
File_Wanted = connectionSocket.recv(1024)
File_Name = File_Wanted.split()[1]
#open and read line in index.htm
File = open('index.htm','r')
output = File.read()
#should I close it here or somewhere else?
File.close()
#take care of header first
connectionSocket.send('HTTP/1.0 200 OK\r\n')
#looks good, then send to client(browser)
for i in range(0, len(output)):
connectionSocket.send(output[i])
connectionSocket.close()
IOError:
#Send response message for file not found
connectionSocket.send('404 Not Found')
#Close client socket
connectionSocket.close()
serverSocket.close()
Quand je construis sur sublime, j'ai.
connectionSocket.send(output[i])
^
IndentationError: attendez un bloc identififiés règle
Python utilise w hitespace pour définir les blocs, vous devez mettre en retrait les lignes après l'instruction 'for' – emredjan
Essayez une indentation après serverSocket.close() – Oqhax
lignes de retrait après' for' boucle pour le code qui devrait être dans le 'for' – WhatsThePoint