Superviseur - Collecteur 1.0
Ce logiciel correspond au collecteur de la suite des trois logiciels composant le superviseur
hyperviseurudpsocket.cpp
Aller à la documentation de ce fichier.
00001 #include "hyperviseurudpsocket.h"
00002 
00003 
00005 
00010 HyperviseurUDPSocket::HyperviseurUDPSocket(quint16 port, QObject *parent) :
00011     QUdpSocket(parent)
00012 {
00013     this->bind(QHostAddress::Any, port);
00014     connect(this, SIGNAL(readyRead()), this, SLOT(lireDatagrammes()));
00015 }
00016 
00017 
00019 
00025 void HyperviseurUDPSocket::lireDatagrammes(){
00026     while(this->hasPendingDatagrams()){
00027         QByteArray datagramme;
00028         QHostAddress source;
00029         QString sourceStr;
00030         quint32 seqNb;
00031 
00032         datagramme.resize(this->pendingDatagramSize());
00033         this->readDatagram(datagramme.data(), datagramme.size(), &source);
00034 
00035         sourceStr = source.toString();
00036         seqNb = datagramme.left(4).toHex().toUInt(0, 16);
00037 
00038         if(this->seqNbTable.contains(sourceStr)){
00039             if(seqNb != this->seqNbTable.value(sourceStr)+1 && seqNb != 0){
00040                 int temp = ((int)seqNb) - ((int)(this->seqNbTable.value(sourceStr)))+1;
00041                 if(temp > 0){
00042                     emit paquetsPerdus( seqNb - (this->seqNbTable.value(sourceStr)+1) );
00043                 }
00044                 qDebug() << sourceStr << ": " << QString::number(temp)+" paquet(s) perdu(s).";
00045             }
00046         }
00047         this->seqNbTable.insert(sourceStr, seqNb);
00048 
00049         emit nouvellesDonnes(QString(datagramme.mid(4)));
00050 
00051         qDebug() << "Réception de " << sourceStr+"  SeqNb:"+QString::number(seqNb);//+"\n\t"+QString(datagramme.mid(4));
00052     }
00053 }
 Tout Classes Fichiers Fonctions Variables Macros