Bonjour,
je souhaite réaliser un serveur (QTcpServer) qui écoute un port donnée. Lorsque qu'un client envoi une chaine de caractère, le serveur doit l'afficher dans une popup.
Mon main :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 #include "ServeurTCP.h" #include <QApplication> int main(int argc, char** argv) { QApplication app(argc, argv); ServeurTCP server; return app.exec(); }
ServeurTCP.h
ServeurTCP.cpp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 class ServeurTCP : public QObject { Q_OBJECT private: QTcpServer server; QTcpSocket* client; void showMessage(QString message); public: ServeurTCP(QObject * parent = 0); ~ServeurTCP(); public slots: void acceptConnection(); void startRead(); };
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 ServeurTCP::ServeurTCP(QObject* parent): QObject(parent) { connect(&server, SIGNAL(newConnection()), this, SLOT(acceptConnection())); server.listen(QHostAddress::Any, 8888); } ServeurTCP::~ServeurTCP() { server.close(); } void ServeurTCP::acceptConnection() { client = server.nextPendingConnection(); connect(client, SIGNAL(readyRead()), this, SLOT(startRead())); } void ServeurTCP::startRead() { char buffer[1024] = {0}; client->read(buffer, client->bytesAvailable()); showMessage(QString(buffer)); } void ServeurTCP::showMessage(QString message) { QMessageBox::warning(NULL, "Titre", message, QMessageBox::Ok); }
Ma première question, pourquoi le programme s'arrête lorsque je quitte ma QMessageBox ? (Car il s'agit de la seule et unique fenêtre ?)
Merci.
Partager