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