C'est un classique de python , après avoir browsé le web , je suis dans l'impasse :
Voila le code entier de mon module :
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
70
71
72
73
74
import os, sys, random , math
import psyco
 
import main
 
psyco.full()
 
 
 
import socket, sys, threading 
 
class ThreadServeur(threading.Thread): 
   def __init__(self): 
    threading.Thread.__init__(self) 
 
   def run(self):
     main.init
 
class ThreadClient(threading.Thread): 
 
 def __init__(self, conn): 
  threading.Thread.__init__(self) 
  self.connexion = conn 
 
 def run(self): 
 
  nom = self.getName() 
  while 1: 
    msgClient = self.connexion.recv(1024) 
    if msgClient.upper() == "FIN" or msgClient =="": 
      break 
    message = "%s> %s" % (nom, msgClient) 
    print message 
 
    for cle in start.conn_client: 
      if cle != nom:
        global conn_client
        conn_client[cle].send(message) 
 
 
 
  self.connexion.close() 
  del conn_client[nom] 
  print "Client %s deconnecte." % nom 
 
def start(HOST,PORT):
 
  main = ThreadServeur()
  main.start()
 
  mySocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
  try: 
    mySocket.bind((HOST, PORT)) 
  except socket.error: 
    print "La liaison du socket a l'adresse choisie a echoue." 
    sys.exit() 
  print "Serveur pret, en attente de requetes ..." 
  mySocket.listen(5) 
 
 
  global conn_client
  conn_client = {} 
  while 1: 
    connexion, adresse = mySocket.accept() 
 
    th = ThreadClient(connexion) 
    th.start() 
 
    it = th.getName() 
    conn_client[it] = connexion 
    print "Client %s connecte, adresse IP %s, port %s." % (it , adresse[0], adresse[1])
 
 
    connexion.send("Vous etes connecte")
C'est " conn_client[cle].send(message) " qui ne marche pas , il ne le trouve pas definis. pourtant :
global conn_client
conn_client = {}
et je l'appele comme ceci :
global conn_client
conn_client[cle].send(message)

Est-ce que quelqu'un peut m'eclairer ? j'ais lu un topic dans ce forum sur ce même sujet mais sans résultat.