python, tkinter et les sockets (et les threads)
bonjour a tous,
Je suis en train de galerer a creer une appli client/serveur (un classique me direz vous. sauf que la je dois integrer une interface graphique avec tkinter.
Mon probleme c'est que le mainloop de tkinter me bloque la reception des messages. En effet j'ai un thread de reception comme ceci
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| class reception_c(th.Thread):
def __init__(self,conn):
th.Thread.__init__(self)
self.connexion = conn
condition = th.Condition()
while 1:
message = self.connexion.recv(255)
print message
if not message:
pass
print "detection de deconnection du serveur\n"
break |
et cest donc la ligne avec le recv qui me bloque car lui me bloque l'ensemble du programme.
quand je met
Code:
1 2
| thread_ecoute=reception_c(self.connexion)
fenetre.mainloop() |
c'est l'interface graphique qui ne demarre pas et quand j'inverse, l'interface graphique demarremais pas l'ecoute, je n'y comprend rien.
J'ai recherché du coté de la socket blockante ou bien du cote des files d'attente de thread mais je n'arrive pas a les mettre en place.
voilou, si quelqu'un voit pourquoi çà bloque
merci d'avance