Bonsoir,

J'ai une série de test ICMP à faire sur plusieurs Ip, et je souhaite utiliser le pingpong de QWebSocket : http://doc.qt.io/qt-5/qwebsocket.html
SIGNAL :
void QWebSocket::pong(quint64 elapsedTime, const QByteArray &payload)
SLOT :
void QWebSocket::ping(const QByteArray &payload = QByteArray())

J'ai créé la classe 'classe.h' en guise de test en m'inspirant des exemples de la Doc :

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
26
27
28
29
30
31
32
33
34
35
36
37
#ifndef CLASSE_H
#define CLASSE_H
 
#include <QtCore/QObject>
#include <QtWebSockets/QWebSocket>
 
 
QT_USE_NAMESPACE
 
 
class classe : public QObject
{
    Q_OBJECT
 
public:
    classe();
 
//   const QByteArray playload = "192.168.109.2";
 
 
Q_SIGNALS:
    void closed();
 
    void QWebSocket::pong(quint64 elapsedTime, const QByteArray &payload);
 
private Q_SLOTS:
 
    void QWebSocket::ping(const QByteArray &payload = QByteArray());
 
private:
 
    QWebSocket m_webSocket;
    QUrl m_url;
    bool m_debug;
};
 
#endif // CLASSE_H
Malheureusement je n'arrive pas à déclarer les deux fonctions membres ping et pong, la compilation me renvoie :

/home/developer/icmp_ping/classe.h:24: erreur : cannot declare member function 'QWebSocket::pong' within 'classe' void QWebSocket::pong(quint64 elapsedTime, const QByteArray &payload);

/home/developer/icmp_ping/classe.h:30: erreur : cannot declare member function 'QWebSocket::ping' within 'classe' void QWebSocket::ping(const QByteArray &payload = QByteArray());
Je travail avec Qt 5.6.2,

Mon .pro ressemble à :
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
 
QT       += core websockets
QT       -= gui
 
TARGET = echoclient
CONFIG   += console
CONFIG   -= app_bundle
 
TEMPLATE = app
 
SOURCES += \
    main.cpp \
    echoclient.cpp
 
HEADERS += \
    echoclient.h
 
target.path = $$[QT_INSTALL_EXAMPLES]/websockets/echoclient
INSTALLS += target
Mon main et mon classe.cpp n'ont rien de particuliers :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
#include <QtCore/QCoreApplication>
#include "classe.h"
 
 
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
 
    return a.exec();
}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
#include "classe.h"
#include <QtCore/QDebug>
 
 
classe::classe()
{
 
 
}
J'aimerais comprendre ce que j'ai raté dans l'intégration des ces deux méthodes ...