from socket import *
import socket, sys, threading
import SocketServer
import time
import locale
class GestionnaireEcho(SocketServer.BaseRequestHandler):
def __init__(self):
SocketServer.BaseRequestHandler.__init__(self)
self.l = []
for ligne in open('benj.txt'):
for commande in ligne.split('#'):
self.l.append(commande.strip())
print self.l
def handle(self):
print "la liste est:"
print self.l
locale.setlocale(locale.LC_ALL,'')
c= time.strftime('%A %c')
print "Connexion de ", self.client_address,c
while True:
donneesRecues = self.request.recv(8192)
t=time.strftime("%H:%M:%S")
print "\n C ",t, "> ", donneesRecues
dr=str(donneesRecues)
try:
ind=self.l.index(dr)
print ind
msg= str(self.l[ind+1])
except:
msg="commande erronee"
self.request.send(msg)
print "Deconnexion de ", self.client_address
mySocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
serveur = SocketServer.ThreadingTCPServer(('127.0.0.1',84), GestionnaireEcho)
except socket.error:
print "La liaison du socket a l'adresse choisie a echoue."
sys.exit()
print "En attente..!!!!"
serveur.serve_forever()
comment récuperer la liste l????
remarque :
1)benj est un fichier txt de la forme:
bb#jj
oo#ll
2)la liste normalement recupere les donnees et devient:
[bb,jj,oo,ll]
Quand le client se connecte il envoie une commande existante dans la liste et le serveur lui envoie la reponse située à la case suivante de la case du cmd.

Non ça veut dire que l'une des trois lignes comprises entre le try et le except plante.
Retire ton try/execpt pour voir l'erreur.
Je suis prêt à parier que c'est une erreur d'indexe dans ton tableau self.l
2)j'ai changé le code et tjs la meme chose le client entre dans une boucle infini et le serveur me reclame l'erreur suivante que je n'est pas compris:
Exception happened during processing of request from ('127.0.0.1', 1089) Traceback (most recent call last): File "C:\Python24\lib\SocketServer.py", line 463, in process_request_thread self.finish_request(request, client_address) File "C:\Python24\lib\SocketServer.py", line 254, in finish_request self.RequestHandlerClass(request, client_address, self) TypeError: __init__() takes exactly 1 argument (4 given)3) Si vous avez une autre solution à mon sujet j'accepterai parce que j'etouffe. j'ai passé 3 jours sur ceci.
Merci