Bonjour,
aidez moi SVP c très urgent.
J'etouffe
Donc voilà mon code je veux que lorsque le client envoie une cmd existante dans le tableau le serveur lui repond la reponse qui est mise à la case l[i+1] de la case de reponse située dans l[i]. Je ne sais pas pourquoi quand je tape la chaine il me répond tjs le message écrit dans l'exception. les fichies seront à votre disposition.
Vous pouvez les tester sous dos.
le fichier c:\python25\benj.txt voilà son contenu:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
jj#oo
bg#cd
azerty#qwerty
bs#bn
le fichier serveur:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
from socket import *
import socket, sys, threading
import SocketServer
import time
import locale
 
class tel():
 
    print "recopier un fichier en eliminant les lignes de remarques"
    fs = open("benj.txt","r")
    l=[]
 
 
    for ligne in file("benj.txt"):
        i=0
        c1=""
        c2=""
        while i<len(ligne) and ligne[i]!="#":
            c1=c1+ligne[i]
            i=i+1
 
        i=i+1
 
        while i<(len(ligne)):
            c2=c2+ligne[i]
            i=i+1
 
        l.append(c1)
        l.append(c2.strip())
    fs.close()
    print l
 
 
class GestionnaireEcho(SocketServer.BaseRequestHandler):
 
    def handle(self):
 
        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=l.index(dr)
                print ind
                msg= str(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)
tel()
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()
le fichier client:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# Definition d"un client reseau gerant en parallele l'emission
# et la reception des messages (utilisation de 2 THREADS).
 
host = '127.0.0.1'
port = 84
 
import socket, sys, threading
 
class ThreadReception(threading.Thread):
    """objet thread gerant la reception des messages"""
    def __init__(self, conn):
        threading.Thread.__init__(self)
        self.connexion = conn           # ref. du socket de connexion
 
    def run(self):
        while 1:
            message_recu = self.connexion.recv(1024)
            print "Ser>" + message_recu 
 
        # Le thread <reception> se termine ici.
        # On force la fermeture du thread <emission> :
 
        print "Client arrete. Connexion interrompue."
        self.connexion.close()
 
class ThreadEmission(threading.Thread):
 
    """objet thread gerant l'emission des messages"""
    def __init__(self, conn):
        threading.Thread.__init__(self)
        self.connexion = conn           # ref. du socket de connexion
 
    def run(self):
        message_final=""
        while 1:
            message_final=""
            message_emis = raw_input()
            message_final = message_final + " \n "+ message_emis
            self.connexion.send(message_final)
 
 
 
# Programme principal - etablissement de la connexion :
connexion = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
    connexion.connect((host, port))
except socket.error:
    print "La connexion a echoue."
    sys.exit()    
print "Connexion etablie avec le serveur."
 
# Dialogue avec le serveur : on lance deux threads pour gerer
# independamment l'emission et la reception des messages :
 
th_E = ThreadEmission(connexion)
th_R = ThreadReception(connexion)
th_E.start()
th_R.start()

Merci