Cours:QtTCP : Différence entre versions

De troyesGEII
Aller à : navigation, rechercher
(Partie Client)
m (Mise en place du serveur)
Ligne 18 : Ligne 18 :
 
==Mise en place du serveur==
 
==Mise en place du serveur==
  
On ajoute un attribut nommé {{Rouge|serveur}} de type QTcpServer à notre application, donc dans le fichier MainWindow.h, et on passe les paramètres au constructeur de la classe QTcpServer dans le fichier QTcpServer.
+
On ajoute un attribut nommé {{Rouge|serveur}} de type QTcpServer à notre application, donc dans le fichier MainWindow.h, et on passe les paramètres au constructeur de la classe QTcpServer dans le fichier MainWindow.cpp
  
 
<source lang=cpp>
 
<source lang=cpp>
Ligne 50 : Ligne 50 :
  
 
{{Question|afficher un message indiquant la réussite ou l'échec du démarrage du serveur.}}
 
{{Question|afficher un message indiquant la réussite ou l'échec du démarrage du serveur.}}
 
 
  
 
==connexion d'un client==
 
==connexion d'un client==

Version du 26 novembre 2019 à 11:36

Configuration du projet

Attention, il est nécessaire de rajouter les librairies pour faire du réseau dans le projet :

// ajouter dans le fichier .pro
QT += network

Partie Serveur

Une carte raspberryPi sera utilisée comme serveur.

Vous aurez besoin de l'adresse (notée @ par la suite) ip de votre carte, pour ce faire vous pouvez dans une console lancer la commande :

ping ras-pi-xx

Mise en place du serveur

On ajoute un attribut nommé serveur de type QTcpServer à notre application, donc dans le fichier MainWindow.h, et on passe les paramètres au constructeur de la classe QTcpServer dans le fichier MainWindow.cpp

// mainwindow.h
...
#include <QTcpServer>
...
private :
   QTcpServer serveur;
...


//mainwindow.cpp
...

MainWindow::MainWindow(QWidget *parent)
    :QMainWindow(parent),
     ui(new Ui::MainWindow),
     serveur(this)
{
    ui->setupUi(this);
}
...

Question.jpg En utilisant la méthode listen, dont voici un exemple d'utilisation, faîtes écouter votre serveur sur l'@ ip de votre carte sur le port de votre choix (>1000).

  monServeur.listen(QHostAddress("192.168.0.1"),monNumeroDePort);

Question.jpg afficher un message indiquant la réussite ou l'échec du démarrage du serveur.

connexion d'un client

Lorsqu'un client se connecte sur votre serveur, celui-ci émet un signal newConnection.

Question.jpg Connectez vous sur ce signal pour afficher un message d'information à chaque nouvelle connexion


Améliorations

Choix du port

Todo.jpg Lancer 2 instances de votre programme et constater qu'il n'y en a qu'un seul qui peut créer une connexion

Partie Client

Mise en place du client

on ajoute un attribut nommé client de type QTcpSocket à notre application, donc dans le fichier MainWindow.h, et on passe les paramètres au constructeur de la classe QTcpSocket dans le fichier MainWindow.cpp