1.20 5.3.
Présentation et fonctionnement de l'application
L'application est subdivisée en deux parties :
l'une pour l'administrateur et l'autre pour les autres postes à
surveiller. Seule la partie administrateur possède une interface
graphique. Ceci lui permettant de réaliser les opérations qu'il
souhaite.
La partie du client ou celle qui se trouve sur tous les autres
postes à surveiller n'a pas d'interface graphique. Elle est
destinée à communiquer avec le poste administrateur pour fournir
à ce dernier les éléments nécessaire ou recevoir
une commande spécifique à exécuter sur lui-même.
L'interface de l'application coté administrateur se
présente comme suit :
- Un menu principal renseigne sur toutes les
fonctionnalités que l'application comporte
251657216![](Implantation-dun-systeme-de-gestion-des-utilisateurs-et-monitoring-des-taches-dans-un-reseau-d30.png)
Figure 4.12. Capture du formulaire de démarrage
(Partie administrateur)
- Le menu «tache» comporte la fonctionnalité
qui permet voir les applications en cours de toutes les machines sur le
réseau...
![](Implantation-dun-systeme-de-gestion-des-utilisateurs-et-monitoring-des-taches-dans-un-reseau-d31.png)
Figure 4.13. Capture du formulaire : Liste des taches
(Partie administrateur)
- Le menu « commande » contient une
fonctionnalité permettant a l'administrateur de commander,
exécuter une opération sur un autre poste
![](Implantation-dun-systeme-de-gestion-des-utilisateurs-et-monitoring-des-taches-dans-un-reseau-d32.png)
Figure 4.14. Capture du formulaire : Lancer commande
(Partie administrateur)
1.21 5.4. Code source
Le code source présenté est celui de l'interface
de la classe « Connexion »
1. #ifndefCONNECTION_H
2. #defineCONNECTION_H
3. #include<QHostAddress>
4. #include<QString>
5. #include<QTcpSocket>
6. #include<QTime>
7. #include<QTimer>
8. staticconstintMaxBufferSize=1024000;
9. classConnection:publicQTcpSocket
10. {
11. Q_OBJECT
12. public:
13. enumConnectionState{
14. WaitingForGreeting,
15. ReadingGreeting,
16. ReadyForUse
17. };
18. enumDataType{
19. PlainText,
20. Ping,
21. Pong,
22. Greeting,
23. Undefined
24. };
25. Connection(QObject*parent=0);
26. QStringname()const;
27. voidsetGreetingMessage(constQString&message);
28. boolsendMessage(constQString&message);
29. signals:
30. voidreadyForUse();
31.
voidnewMessage(constQString&from,constQString&message);
32. protected:
33. voidtimerEvent(QTimerEvent*timerEvent);
34. privateslots:
35. voidprocessReadyRead();
36. voidsendPing();
37. voidsendGreetingMessage();
38. private:
39. intreadDataIntoBuffer(intmaxSize=MaxBufferSize);
40. intdataLengthForCurrentDataType();
41. boolreadProtocolHeader();
42. boolhasEnoughData();
43. voidprocessData();
44. QStringgreetingMessage;
45. QStringusername;
46. QTimerpingTimer;
47. QTimepongTime;
48. QByteArraybuffer;
49. ConnectionStatestate;
50. DataTypecurrentDataType;
51. intnumBytesForCurrentDataType;
52. inttransferTimerId;
53. boolisGreetingMessageSent;
54. };
55. #endif
|