Pour aller plus loin
Pour aller plus loin : améliorations à réaliser
Visualisez les trames passantes entre le client et le serveur à l'aide du logiciel WIRESHARK.
Voici quelques suggestions d'améliorations :
- Vous pouvez griser la zone d'envoi des messages ainsi que le bouton "Envoyer" lorsque le client n'est pas connecté.
- Sur la fenêtre du serveur, il devrait être assez facile d'afficher le nombre de clients qui sont connectés.
- Plus délicat car ça demande un peu de réorganisation du code : au lieu d'avoir une QList de QTcpSocket, faites une QList d'objets de type Client.
Il faudra créer une nouvelle classe Client qui va représenter un client. Elle aura des attributs comme : sa QTcpSocket, le pseudo (QString), pourquoi pas l'avatar (QPixmap), etc. A partir de là vous aurez alors beaucoup plus de souplesse dans votre Chat ! - Vous pourriez alors facilement afficher le pseudo du membre qui vient se connecter. Pour le moment, on a juste "Un client vient de se connecter".
- Plutôt graphique mais sympa : vous pourriez gérer la mise en forme des messages (gras, rouge...) ainsi que des smileys.
- Plus délicat, mais très intéressant : essayez d'afficher la liste des clients connectés sur la fenêtre des clients. Vous devriez rajouter un widget QListView pour afficher cette liste, ça vous ferait travailler MVC en plus.
Le plus délicat est de gérer la liste des connectés, car pour le moment le pseudo est directement intégré aux messages qui sont envoyés. Il faudrait essayer de gérer le contenu des paquets un peu différemment, à vous de voir. - Actuellement, le serveur est un peu minimal et ne gère pas tous les cas. Par exemple, si 2 clients envoient un message en même temps, il n'y a qu'une seule variable tailleMessage pour 2 messages en cours de réception. Je vous recommande de gérer plutôt 1 tailleMessage par client (vous n'avez qu'à mettre tailleMessage dans la classe Client).
- Autres.....
Sources
https://openclassrooms.com/fr/courses/1894236-programmez-avec-le-langage-c/1902751-communiquez-en-reseau-avec-son-programme
Créé avec HelpNDoc Personal Edition: Créer des documents d'aide CHM facilement