problème de changement de valeur d'une variable
bonjour
j'utilise pyqt
j'ai deux stations connectées avec le mode udp ave QtNetwork et Qudpsocket
station 1:
----------------------------------
class communication()
Code:
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:
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