bonjour
j'utilise pyqt
j'ai deux stations connectées avec le mode udp ave QtNetwork et Qudpsocket
station 1:
----------------------------------
class communication()
-------------------------------
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 # création de socket self.udpSocket = QtNetwork.QUdpSocket(self) self.udpSocket.bind(45454) self.udpSocket.readyRead.connect(self.processPendingDatagrams) self.nbr_messages=0 def processPendingDatagrams(self): while self.udpSocket.hasPendingDatagrams(): datagram, host, port = self.udpSocket.readDatagram(self.udpSocket.pendingDatagramSize()) try: # Python v3. datagram = str(datagram, encoding='ascii') except TypeError: # Python v2. datagram = str(datagram, encoding='ascii') pass self.nbr_messages+=1 print "nombre de message = ",self.nbr_messages cmt=communication()
le station 2 envoie des messages
lors l'éxécution dans la station 1:
nombre de message = 1
nombre de message = 2
nombre de message = 3
nombre de message = 4
nombre de message = 5
l'éxécution est normale.
----------------------------
le problème est le suivant:
j'ai ajouté la boocle suivant dant la station 1:
--------------------
--------------------
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 while cmt.nbr_message==0: print "nombre de message = ",cmt.nbr_message print "nombre de message = ",cmt.nbr_message
l'éxécution est comme suite :
nombre de message = 0
nombre de message = 0
nombre de message = 0
nombre de message = 0
nombre de message = 0
.....
.....
le variable cmt.nbr_message n'est pas incrémenté !!!!
malgré la station 2 envoie des messages
et aussi je synchronisé l'accer au variable cmt.nbr_message par lock de module thrad (aquire et relaise)
dans la boucle while et dans processPendingDatagrams mais aussi le même problème
merçi
Partager