Bonjour à tous, c'est la première fois de ma vie que je poste sur un forum, j'espère que je le fais correctement.
Voilà mon problème :
Je souhaite établir une connexion entre 2 PC (reliés par un Ethernet pour l'instant mais par Wifi plus tard) pour envoyer des données (je m'en occuperai plus tard).
Je réussis à allumer le serveur sous Delphi d'un côté, mais mon client, et c'est là que je rame, est sous Qt 5.12.0 (je travaille sur Ubuntu) et la commande "return socket->waitForConnected()" ne me renvoi rien.
J'ai bien conscience que c'est parce que je ne parviens pas à me connecter au serveur (si je met un temps à l'intérieur il me renvoi toujours False), mais je ne comprend pas pourquoi, alors que ça a l'air si simple pour tout le monde sur les différents forum FR/EN que j'ai épluché.
Je vous met les programmes que j'utilise :
test1.pro
client.h
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 QT += network QT -= gui QT += widgets HEADERS += client.h SOURCES += main.cpp \ client.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
15
16
17
18
19
20
21
22
23
24
25
26
27
28 #ifndef CLIENT_H #define CLIENT_H #include <QtCore> #include <QtNetwork> class Client : public QObject { Q_OBJECT public: explicit Client(QObject *parent = 0); public slots: bool connectToHost(QString host); private: QTcpSocket *socket; }; #endif // CLIENT_H
client.cpp
main.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
15 #include "client.h" //static inline QByteArray IntToArray(qint32 source); Client::Client(QObject *parent) : QObject(parent) { socket = new QTcpSocket(this); } bool Client::connectToHost(QString host) { socket->connectToHost("192.168.0.2", 10000); return socket->waitForConnected(); }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 #include <QApplication> #include "client.h" int main(int argc, char *argv[]) { QApplication app(argc, argv); QApplication::setApplicationDisplayName(Client::tr("Fortune Client")); Client client; // client.show(); return app.exec(); }
C'est un code très simple mais pourtant qui ne me permet pas de me connecter à mon serveur.
Mon serveur est sous window, et je vois, dans le moniteur de ressource que mon port 10000 est bien à l'écoute.
J'ai cherché du coté des ports sous linux (que je ne maitrîse pas vraiment), j'ai testé de nombreux programmes, mais je pense avoir raté quelque chose, si quelqu'un pouvait m'aiguiller sur une quelconque piste je lui en serais vraiment très reconnaissant.
Partager