class ThreadClient(threading.Thread):
	'''derivation d'un objet thread pour gerer la connexion avec un client'''
	def __init__(self, conn):
		threading.Thread.__init__(self)
		self.connexion = conn
       
	def run(self):
		# Dialogue avec le client :
		nom = self.getName() # Chaque thread possede un nom
		while 1:
			msgClient = self.connexion.recv(1024)
			if msgClient.upper() == "FIN" or msgClient =="":
				break
			message = "%s> %s" % (nom, msgClient)
			print message
			# Faire suivre le message a tous les autres clients :
			for cle in conn_client:
				if cle != nom: # ne pas le renvoyer a l'emetteur
					conn_client[cle].send(message)
                   
		# Fermeture de la connexion :
		self.connexion.close() # couper la connexion cote serveur
		del conn_client[nom] # supprimer son entree dans le dictionnaire
		print "Client %s deconnecte." % nom
		# Le thread se termine ici
			
		
 
	
Partager