Pour un travail, j'ai créé un serveur web qui gère plusieurs requêtes avec des threads, mais il se bloque maintenant quand je lance le programme et je ne sais pas pourquoi. Il n'atteint jamais la phase d'impression ('Connecté par', adresse). Toute aide et explication seraient grandement appréciées.Un simple serveur web se bloque
class Connect(threading.Thread):
def __init__ (self, connection):
self.clientsocket = connection
threading.Thread.__init__(self)
def run(self):
stream = connection.makefile(mode="rw", buffering=1, encoding="utf-8")
firstLine = stream.readline().split(" ")
hList = []
method = firstLine[0]
path = firstLine[1]
line = stream.readline().strip()
while line != "":
hList.append(line.split(":", 1))
line = stream.readline().strip()
if method != 'GET':
stream.write("HTTP/1.0 405 Unsupported\n\nUnsupported")
else:
stream.write("HTTP/1.0 200 Success\n")
stream.write("Content-type: text/plain\n")
stream.write("\n")
stream.write(str(firstLine) + '\n')
for header in hList:
stream.write(str(header) + "\n")
stream.close()
connection.close()
return path == "/stop"
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
s.bind(('', 9999))
s.listen(1)
while 1:
connection, address = s.accept()
print('Connected by', address),
Connect(connection).start()
Vive
Dire "désolé si l'indentation est un peu foirée" est susceptible de gâcher votre programme Python aussi; ')'. –
... vous écrivez ** Python **. S'il vous plaît corriger l'indentation. – Amber
Cela devrait être maintenant – EmberZ