0% ont trouvé ce document utile (0 vote)
124 vues19 pages

Développement d'une Application Chat Java

Le rapport présente le développement d'une application de chat client/serveur en Java, axée sur la communication réseau et la sécurité. Il aborde la mise en place d'un serveur socket capable de gérer plusieurs connexions, l'envoi et la réception de messages, ainsi que des fonctionnalités comme l'enregistrement vocal et la gestion des profils utilisateurs. Le projet souligne l'importance de l'architecture client/serveur dans l'amélioration de la communication et de la gestion des données.

Transféré par

zakariasidickbakary
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
124 vues19 pages

Développement d'une Application Chat Java

Le rapport présente le développement d'une application de chat client/serveur en Java, axée sur la communication réseau et la sécurité. Il aborde la mise en place d'un serveur socket capable de gérer plusieurs connexions, l'envoi et la réception de messages, ainsi que des fonctionnalités comme l'enregistrement vocal et la gestion des profils utilisateurs. Le projet souligne l'importance de l'architecture client/serveur dans l'amélioration de la communication et de la gestion des données.

Transféré par

zakariasidickbakary
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

MINISTERE DE L’ENSEIGNEMENT REPUBLIQUE TOGOLAISE

SUPERIEUR ET DE LA RECHERCHE
Travail-Liberté-Patrie
(MESR)

ECOLE SUPERIEURE DE GESTION D’INFORMATIQUE ET DES SCIENCES

RAPPORT de mini projet


Domaine : Informatique Réseau et Télécommunication
Mention : Informatiques
Spécialité : système réseau et sécurité

THEME

MISE EN PLACE D’UNE APPLICATION CHAT


CLIENT/SERVEUR

Rédigé par : Supervisé par :


Zakaria Abakar Sidick Bakary M. Kouassi
Damesonou Odilon Yédoupaad
Ditovo Amouzouvi

Promotion
15/02/2025

1
MINISTERE DE L’ENSEIGNEMENT REPUBLIQUE TOGOLAISE
SUPERIEUR ET DE LA RECHERCHE
Travail-Liberté-Patrie
(MESR)

ECOLE SUPERIEURE DE GESTION D’INFORMATIQUE ET DES SCIENCES

RAPPORT DE mini projet


Domaine : Informatique Réseau et Télécommunication
Mention : Informatique
Spécialité : système réseau et sécurité

THEME

MISE EN PLACE D’UNE APPLICATION CHAT


CLIENT/SERVEUR

Rédigé par : Supervisé par :


Zakaria Abakar Sidick Bakary M. Kouassi
Damesonou Odilon Yédoupaad
Ditovo Amouzouvi

Promotion
15/02/2025

2
Sommaire
I. Introduction ................................................................................................................................................. 5
II. Définition ..................................................................................................................................................... 5
III. Mise en Place du Serveur Socket .............................................................................................................. 6
A. Création d’un Serveur Java Gérant Plusieurs Connexions Clientèles ........................................................... 6
B. Utilisation des Sockets pour la Communication Réseau ............................................................................. 6
C. Gestion des Messages .............................................................................................................................. 6
D. Gestion des Profils et Statuts .................................................................................................................... 7
E. Enregistrement Vocal ............................................................................................................................... 7
IV. Développement du Client......................................................................................................................... 7
A. Interface Utilisateur (GUI) ........................................................................................................................ 7
B. Connexion au Serveur .............................................................................................................................. 7
C. Envoi et Réception de Messages ............................................................................................................... 8
D. Enregistrement Vocal ............................................................................................................................... 8
V. Avantages de l'architecture client/serveur .................................................................................................... 8
VI. Inconvénients du modèle client/serveur ................................................................................................... 9
VII. Les déférentes architectures client/serveur .............................................................................................. 9
1. Présentation de L’architecture 1-tiers ................................................................................................. 10
2. Présentation de l'architecture 2-tiers.................................................................................................. 10
3. Présentation de l'architecture 3-tiers.................................................................................................. 10
VIII. L’ENVIONEMENT DE TRAVAIL ................................................................................................................. 11
A. JAVA ...................................................................................................................................................... 11
B. Presentation de l’application .................................................................................................................. 13
1. Serveur .............................................................................................................................................. 13
2. Clients ............................................................................................................................................... 14
C. Les Bases de données ............................................................................................................................. 14
D. Les Fonctionnement de l’Application ...................................................................................................... 15
E. NetBeans ............................................................................................................................................... 17
F. AWT et SWING....................................................................................................................................... 17
G. JDBC (Java DataBase Connectivity) ......................................................................................................... 18
IX. Conclusion ............................................................................................................................................. 19

3
Introduction Générale
La communication occupe une place très importante dans la vie humaine. Cette dernière est
indispensable dans tous domaines : la vie sociale, professionnelle, civique, et personnelle.
À ce stade, il ne fait désormais plus aucun doute que les technologies de l'information et de la
communication représentent la révolution la plus importante et la plus innovante qui a marqué la
vie de l'humanité en ce siècle. En effet, loin d'être un éphémère phénomène de mode, ou une
tendance passagère, ces technologies viennent nous apporter de multiples conforts à notre mode
de vie, car ils ont révolutionné le travail des individus par leur capacité de traitement
d'information, d'une part, et de rapprochement des dimensions espace/temps, d'une autre.
La progression des Technologies de la communication a créé l’interconnexion de réseaux de
données solides qui sont profondément impact. Au début, les premiers réseaux étaient limites à
échanger les informations reposant sur des caractères entre des systèmes informatique connectes,
et avec les dernières générations d’outils de télécommunication, les réseaux sont en voie
d’amélioration, ils ont pris en charge le transfert audio, des flux vidéo, du texte et des graphismes
entre des périphériques de types très différents, la rétroaction devient plus aisée, et les messages
se sont beaucoup enrichis.
La disponibilité du réseau permanente nécessite une technologie efficace et fiable. Dans ce cercle
s’inscrit notre projet de fin d’études : « Développement d’une application client/serveur avec
JAVA SWING ».
Ce projet s'articule autour de deux chapitres :
A : Architecture Client-Serveur Et Java Swing Dans ce chapitre, nous présentons les différentes
architectures client/serveur, et Swing.
B : Application Et Outils utilisés Ce chapitre, s'intéresse à la présentation et réalisation de l’application, il
contient les outilles utilisés, l’environnement du travail, le fonctionnement de l’application et les principales
interfaces.

4
I. Introduction
Dans le but de centraliser les informations, ainsi que de les sécuriser le mieux possible, il
devint nécessaire de créer une architecture de communication répondant à ces besoins. C’est
en 1994 que l’architecture client-serveur s’implante sur le marché. Non seulement cette
architecture rend-elle possible l’amélioration de la capacité de stockage des données, elle
contribue à augmenter considérablement la rapidité de traitement des postes de travail. En
effet, par la structure du serveur qui contient plusieurs unités de traitement (CPU), la capacité
ainsi que la mémoire sont accrues. La progression de l’architecture client-serveur ne sera pas
linéaire. En effet, cette technologie se développera à un rythme des plus accélérés. On peut
affirmer qu’elle a connu une croissance exponentielle dans tous les domaines d’activités :
- Gestion de base de données.
- Les systèmes transactionnels.
- Les systèmes de messagerie, web, Internet.
- Les systèmes de partages des données.
- Les calculs scientifique.

II. Définition
De nombreuses applications fonctionnent selon un environnement client/serveur, cela signifie
que des machines clientes (des machines faisant partie du réseau) contactent un serveur, une
machine généralement très puissante en termes de capacités d'entrée-sortie, qui leur fournit
des services. Ces services sont des programmes fournissant des données telles que l'heure, des
fichiers, une connexion, etc.

Les services sont exploités par des programmes, appelés programmes clients, s'exécutant sur les
machines clientes. On parle ainsi de client (client FTP, client de messagerie, etc.) lorsque l'on
désigne un programme tournant sur une machine cliente, capable de traiter des informations qu'il
récupère auprès d'un serveur (dans le cas du client FTP il s'agit de fichiers, tandis que pour le
client de messagerie il s'agit de courrier électronique).

5
III. Mise en Place du Serveur Socket

La mise en place du serveur socket est une étape cruciale dans le développement de l’application de chat. Le
serveur joue le rôle de centralisateur des communications entre les différents clients. Il est développé en Java
et utilise la technologie des sockets pour établir des connexions réseau fiables et efficaces.

A. Création d’un Serveur Java Gérant Plusieurs Connexions Clientèles

Le serveur est conçu pour gérer plusieurs connexions clientes simultanément. Pour cela, on utilise un
ServerSocket en Java, qui écoute sur un port spécifique (par exemple, le port 9999) en attente de connexions
entrantes. Lorsqu’un client se connecte, le serveur crée un nouveau Socket pour gérer cette connexion de
manière indépendante. Cela permet à plusieurs utilisateurs de se connecter et de communiquer en même
temps sans interférence.

Pour gérer plusieurs clients, le serveur utilise des threads. Chaque connexion cliente est traitée dans un
thread séparé, ce qui permet au serveur de rester réactif et de gérer plusieurs échanges de données en
parallèle. Par exemple, si un utilisateur envoie un message pendant qu’un autre télécharge un fichier, les
deux actions sont gérées simultanément sans blocage.

B. Utilisation des Sockets pour la Communication Réseau

Les sockets sont au cœur de la communication entre le serveur et les clients. Un socket est un point de
terminaison pour envoyer et recevoir des données sur un réseau. En Java, la classe Socket est utilisé côté
client pour se connecter au serveur, tandis que la classe ServerSocket est utilisée côté serveur pour accepter
les connexions.

Une fois la connexion établie, le serveur et le client communiquent via des flux d’entrée (InputStream) et de
sortie (OutputStream). Ces flux permettent d’envoyer et de recevoir des données sous forme de bytes, qui
peuvent ensuite être convertis en texte, images, vidéos ou autres types de médias. Par exemple, un message
texte est converti en bytes avant d’être envoyé, puis reconverti en texte à la réception.Pour garantir une
communication fluide, le serveur doit gérer les déconnexions inattendues des clients (par exemple, si un
utilisateur ferme brusquement l’application). Cela implique de surveiller l’état des sockets et de libérer les
ressources lorsqu’une connexion est interrompue.

C. Gestion des Messages

L’échange de messages est une fonctionnalité essentielle de toute plateforme de communication.


L’application doit permettre l’envoi et la réception de messages texte en temps réel entre les collaborateurs.
Chaque message envoyé sera transmis via des sockets au serveur, qui le redirigera vers le destinataire
concerné. Pour assurer la confidentialité, ces messages seront chiffrés avant leur transmission afin de
garantir un échange sécurisé.

En plus des messages texte, la gestion des médias constitue un autre aspect fondamental. Les utilisateurs
pourront envoyer des images, des vidéos et des fichiers audios. Pour ce faire, ces fichiers seront convertis en
flux de données et envoyés au serveur, qui les stockera temporairement avant de les transmettre au
destinataire. Un système de compression et de limitation de la taille des fichiers sera mis en place afin
d’optimiser la bande passante et d’éviter une surcharge du réseau.

6
D. Gestion des Profils et Statuts

Chaque utilisateur disposera d’un profil contenant des informations telles que son nom d’utilisateur, son
nom complet et sa fonction au sein de l’entreprise. Ces informations seront stockées dans une base de
données et accessibles par le système afin de faciliter l’identification des collaborateurs. La création et la
mise à jour du profil seront gérées via une interface dédiée, permettant aux utilisateurs de modifier leurs
informations personnelles si nécessaire.

Le statut en ligne jouera un rôle important dans la disponibilité des utilisateurs. Chaque connexion au
serveur sera accompagnée d’une mise à jour du statut de l’utilisateur, indiquant s’il est en ligne ou hors
ligne. Ces informations seront actualisées en temps réel pour permettre aux collaborateurs de voir qui est
disponible pour discuter. En cas d’inactivité prolongée, le statut pourra être automatiquement mis à jour
pour signaler une absence temporaire.

E. Enregistrement Vocal

L’intégration d’un système d’enregistrement vocal offrira une alternative aux messages texte et médias.
Cette fonctionnalité permettra aux utilisateurs d’enregistrer des messages audios directement depuis
l’interface de l’application. L’enregistrement sera effectué à l’aide du microphone de l’ordinateur, puis
compressé et converti en un format compatible avant d’être transmis au serveur.

Une fois enregistré, le fichier audio sera envoyé au serveur, qui assurera sa redistribution au destinataire
concerné. Pour garantir un bon fonctionnement, une gestion efficace des fichiers audio sera mise en place,
incluant des restrictions de durée et de taille afin d’optimiser les performances du système et d’éviter une
surcharge inutile du réseau.

IV. Développement du Client


A. Interface Utilisateur (GUI)

L'interface utilisateur est un élément essentiel de l’application, permettant aux utilisateurs d'interagir avec le
système de manière intuitive et fluide. Elle est développée en Java en utilisant JavaFX ou Swing, deux
bibliothèques adaptées à la conception d'interfaces graphiques interactives. L'interface comprend plusieurs
fenêtres principales, notamment un écran de connexion, une fenêtre de chat, une section pour la gestion du
profil et une zone dédiée aux fichiers multimédias.

L'accent est mis sur l'ergonomie et l'expérience utilisateur : une liste des contacts est affichée sur le côté
gauche de l'écran, indiquant leur statut en ligne ou hors ligne. La zone centrale est réservée aux messages
échangés, avec une distinction visuelle entre les messages envoyés et reçus. Un champ de saisie de texte
accompagné d’un bouton d’envoi facilite la communication instantanée. Des icônes permettent également
l’ajout d’images, de vidéos et d’enregistrements vocaux.

Un système de notifications est intégré pour informer l'utilisateur des nouveaux messages reçus, même
lorsque l'application est en arrière-plan. Enfin, la gestion du thème clair/sombre est prévue pour améliorer le
confort visuel selon les préférences de l'utilisateur.

B. Connexion au Serveur

L’application suit un modèle client-serveur basé sur les sockets en Java. Lorsqu'un utilisateur ouvre
l'application, une connexion est établie avec le serveur via un socket TCP sécurisé. Ce socket permet un
échange continu de données entre le client et le serveur, assurant ainsi la transmission instantanée des
messages et des fichiers.

7
Lors de la connexion, l'utilisateur doit saisir son nom d'utilisateur et son mot de passe. Ces informations sont
envoyées au serveur, qui les compare aux données stockées dans la base de données pour authentifier
l’utilisateur. Si l’authentification réussit, le serveur maintient la connexion active et met à jour le statut en
ligne de l’utilisateur.

Une gestion efficace des erreurs est mise en place : en cas de problème de connexion, un message d’alerte
est affiché, et l’application tente automatiquement de se reconnecter. De plus, pour éviter les interruptions en
cas de perte temporaire de réseau, un mécanisme de reconnexion automatique est implémenté.

C. Envoi et Réception de Messages

L'échange de messages est géré via un système de sockets TCP, permettant une communication fiable et
sécurisée entre les utilisateurs. Lorsqu’un message est tapé et envoyé, le client le transmet au serveur sous
forme de paquet de données structuré. Le serveur reçoit ce paquet, identifie le destinataire et le redirige vers
le client concerné.

Le format des messages inclut non seulement le texte, mais aussi des métadonnées telles que l'identifiant de
l'expéditeur, l'horodatage et l’état de livraison (envoyé, reçu, lu). Chaque message est chiffré à l’aide d’un
algorithme AES (Advanced Encryption Standard) avant d’être transmis, garantissant ainsi la confidentialité
des échanges.

Lorsqu’un utilisateur reçoit un message, celui-ci est automatiquement affiché dans la fenêtre de chat et
stocké temporairement dans un fichier local pour consultation hors ligne. Un accusé de réception est envoyé
au serveur afin d’informer l’expéditeur que son message a bien été délivré.

Pour optimiser l’affichage, l’application gère le défilement automatique des messages et propose une
recherche intégrée permettant aux utilisateurs de retrouver rapidement des conversations passées.

D. Enregistrement Vocal

L'enregistrement vocal est une fonctionnalité essentielle dans une application de messagerie professionnelle,
permettant aux utilisateurs de communiquer rapidement sans avoir à taper de longs messages. Dans le cadre
de notre plateforme, cette fonctionnalité repose sur l'utilisation de l’API Java Sound, qui permet
l'enregistrement, la lecture et l'envoi des fichiers audio via les sockets.

L’utilisateur pourra appuyer sur un bouton d’enregistrement, parler, puis envoyer le fichier directement à
son interlocuteur. Le fichier audio sera converti en un format compressé pour minimiser la consommation de
bande passante et sera chiffré avant l'envoi afin de garantir la confidentialité des échanges.

Sur le plan technique, l’enregistrement vocal suit plusieurs étapes :

Capture du son via le microphone de l’utilisateur à l’aide de la bibliothèque javax.sound.sampled.

Enregistrement et conversion du fichier en un format léger tel que .wav ou .mp3.

Chiffrement du fichier audio avant l'envoi pour garantir la sécurité des échanges.

Envoi du fichier via le socket au destinataire, qui le recevra et pourra le lire via un lecteur audio intégré.

V. Avantages de l'architecture client/serveur


Le modèle client/serveur est particulièrement recommandé pour des réseaux nécessitant un
grand niveau de fiabilité, ses principaux a sont :

8
• Des ressources centralisées : étant donné que le serveur est au centre du réseau, il peut
gérer des ressources communes à tous les utilisateurs, comme par exemple une base de
données centralisée, afin d'éviter les problèmes de redondance et de contradiction.
• Une meilleure sécurité : car le nombre de points d'entrée permettant l'accès aux données
est moins important.
• Une administration au niveau serveur : les clients ayant peu d'importance dans ce
modèle, ils ont moins besoin d'être administrés.
• Un réseau évolutif : grâce à cette architecture il est possible de supprimer ou rajouter des
clients sans perturber le fonctionnement du réseau et sans modification majeure.

VI. Inconvénients du modèle client/serveur


L'architecture client/serveur a tout de même quelques lacunes parmi lesquelles :
• un coût élevé dû à la technicité du serveur.
• un maillon faible : le serveur est le seul maillon faible du réseau client/serveur, étant donné
que tout le réseau est architecturé autour de lui.

VII. Les déférentes architectures client/serveur


Une application informatique peut être découpée en trois niveaux d‘abstraction distincts :
• La couche de présentation : permet l’interaction de l’application avec l’utilisateur. Cette
couche gère les saisies au clavier, à la souris et la présentation des informations à l’écran.
• la logique applicative, les traitements : écrivant les travaux à réaliser par l’application. Ils
peuvent être découpés en deux familles :
* les traitements locaux : regroupant les contrôles effectués au niveau du dialogue avec
l’IHM, visant essentiellement le contrôle et l’aide à la saisie.
* les traitements globaux : constituant l’application elle-même, contient les règles internes
qui régissent une entreprise donnée.
• Les données : l’accès aux données, regroupant l’ensemble des mécanismes permettant la
gestion des informations stockées par l’application.
Ces trois niveaux peuvent être imbriqués ou repartis de différentes manières entre plusieurs
machines physiques.
Le noyau de l’application est composé de la logique de l’affichage et la logique des
traitements.
Le découpage et la répartition de ce noyau permettent de distinguer les architectures
applicatives suivantes :
L’architecture 1-tiers
L’architecture 2-tiers
L’architecture 3-tiers
Les architectures n-tiers

9
1. Présentation de L’architecture 1-tiers

Dans une application un tiers les couches applicatives sont liées et s’exécutent sur le même
ordinateur. On ne parle pas ici d’architecture client-serveur, mais d’informatique centralisée.
Dans ce contexte plusieurs utilisateurs se partagent des fichiers de données stockés sur un
serveur commun.

2. Présentation de l'architecture 2-tiers

L'architecture à deux niveaux (aussi appelée architecture 2-tiers) caractérise les systèmes
clients/serveurs pour lesquels le client demande une ressource et le serveur la lui fournit
directement, en utilisant ses propres ressources. Cela signifie que le serveur ne fait pas appel à
une autre application afin de fournir une partie du service.
L’échange de messages transite à traverse un réseau reliant les deux machines (client et
serveur), il met en œuvre des mécanismes relativement complexe qui sont, en général, pris en
charge par un middleware.
Le cas typique de cette architecture est une application de gestion fonctionnement sous
Windows ou Linux et exploitant un SGBD centralisé. S’exécutant le plus souvent sur un
serveur dédié, ce dernier est interrogé en utilisant un langage de requête comme SQL.
Ce type d’application permet de tirer une partie de la puissance des ordinateurs déployés en
réseau pour fournir à l’utilisateur une interface riche, tout en garantissant la cohérence des
données, qui restent gérées de façon centralisée.

L’architecture 2-tiers présente de nombreux avantages qui lui permettent de présenter un bilan globalement
positif : elle permet l’appropriation des applications par l’utilisateur, l’utilisation d’une interface utilisateur
riche et elle introduit la notion d’interopérabilité

3. Présentation de l'architecture 3-tiers

Pour résoudre les limitations du client/serveur 2-tiers tout en conservant ses avantages, on a
cherché une architecture plus évoluée, facilitant les forts déploiements à moindre coût, La
réponse est apportée par les architectures distribuées, en utilisant un poste client simple
communicant avec le serveur par le biais d’un protocole standard.
Cette architecture 3-tiers également appelée client-serveur de deuxième génération ou client-
serveur distribué applique les principes suivants :

10
Les données sont toujours gérées de façon centralisée, la présentation est toujours prise par le
post client, la logique applicative est prise en charge par un serveur intermédiaire.
L’architecture 3-tiers sépare l’application en 3 niveaux de services distincts, conforme aux
principes précédents :
• Premier niveau : l’affichage et les traitements locaux (contrôle de saisie, mise en forme de
données…) sont pris en charge par le post client.
• Deuxième niveau : les traitements applicatifs globaux sont pris en charge par le service
applicatif.
• Troisième niveau : les services de base de données sont pris en charge par un SGBD.

VIII. L’ENVIONEMENT DE TRAVAIL


A. JAVA
Java intègre les concepts les plus intéressants des technologies informatiques récentes dans une
plate-forme de développement riche et homogène,
Java a été développée par SUN au début des années 90 dans une optique de plus grande
portabilité d’une machine à une autre, et d’une grande fiabilité, il s’agit donc d'un environnement
de Programmation orientée objet.
Il est possible d’utiliser Java pour créer des logiciels dans des environnements très diversifiés :
- Applications sur client lourd (JFC) ;
- Applications Web, côté serveur (servlets,JSP,Struts,JSF) ;
- Applications réparties (EJB) ;
- Applications sur carte à puce (JavaCard).
Ces applications contiennent des nombreuses fonctionnalités :

11
- Accès à des bases de données (JDBC) ;
- Traitement XML ;
- Web services (JAXM) ;
- Accès à des annuaires (JNDI).
- Caractéristiques du JAVA :
* Orienté Objet.
* Distribué.
* Multithread.
* Robuste.
* Dynamique
* Portable.
* Haute performance.
- Les composantes de java :
*Langage orienté objet JAVA.
*JVM (machine virtuelle Java) : permette d’interpréter et d’exécuter le bytecode java
* API (Application Programming Interface) : un ensemble de classes standards (bibliothèque
standard).
*JRE (Java Runtime Environement) : l’environnement d’exécution Java désigne un ensemble
d’outils permettant l’exécution de programmes Java sur toutes les plates-formes supportées. JRE
est constitué de la JVM et de la Bibliothèque Standard (API).
*Java Development Kit (JDK) : le nouveau terme c’est SDK (Standard Développent Kit) qui
est l’environnement dans lequel le code Java est compilé pour être transformé en bytecode afin
que la machine virtuelle Java (JVM) puisse l’interpréter.
JDK est composé de :
Javac : le compilateur.
Javadoc : le générateur de documentation.
Jar : L’archiver.
Jdb : Le débogueur.
JRE : Environnement d’exécution java.

12
Figure 1: java

B. Presentation de l’application
Notre projet consiste à réaliser une application Client-Serveur par Java, dans un réseau local,
cette application est une application de schat : Messagerie instantanée c’est à dure échange des
messages textuels en temps réel des image, vidéo, document etc.

1. Serveur

13
2. Clients

C. Les Bases de données

14
D. Les Fonctionnement de l’Application
Pour exécuter notre application, il fout d’abord lancer le serveur et après lancer les clients.
Nous présentons l’interface de notre application de chat nome ESGIS chat

15
16
E. NetBeans
En 1997, NetBeans naît de Xelfi, un projet d'étudiants dirigé par la Faculté de Mathématiques et
de physique de l'Université Charles de Prague. Plus tard, une société se forme autour du projet et
édite des versions commerciales de l'EDI NetBeans, jusqu'à ce qu'il soit acheté par Sun en 1999.
Sun place le projet sous double licence CDDL (Common Development and Distribution License)
et GPL v2 en juin de l'année suivante.
NetBeans est un environnement de développement intégré (EDI), placé en open source par Sun
en juin 2000. En plus de Java, NetBeans permet également de supporter différents autres
langages, comme Python, C, C++, JavaScript, XML, Ruby, PHP et HTML.
Il comprend toutes les caractéristiques d'un IDE moderne (éditeur en couleur, projets multi-
langage, refactoring, éditeur graphique d'interfaces et de pages Web). Netbeans est une
plateforme, vous permettant d’écrire vos propres applications Swing. Sa conception est
complètement modulaire : Tout est module, même la plateforme. Ce qui fait de Netbeans une
boite à outils facilement améliorable ou modifiable.
L'environnement de base comprend les fonctions générales suivantes :
• Configuration et gestion de l'interface graphique des utilisateurs ;
• Support de différents langages de programmation ;
• Traitement du code source (édition, navigation, formatage, inspection.) ;
• Fonctions d'import/export depuis et vers d'autres IDE, tels qu'Eclipse ou JBuild ;
• Accès et gestion de bases de données, serveurs Web, ressources partagées ;
• Gestion de tâches ;
• Documentation intégrée.

F. AWT et SWING
La première API pour développer des interfaces graphiques portables d'un système à un autre en
Java est AWT. Cette API repose sur les composants graphiques du système 22 sous-jacent ce qui
lui assure de bonnes performances. Malheureusement, ces composants sont limités dans leur
fonctionnalité car ils représentent le plus petit dénominateur commun des différents systèmes
concernés. Pour pallier ce problème, Sun a proposé une nouvelle API, Swing. Swing fait partie de
la bibliothèque Java Foundation Classes (JFC). C'est une API dont le but est similaire à celui de
l'API AWT mais dont les modes de fonctionnement et d'utilisation sont complètement différents.
Swing a été intégré au JDK depuis sa version 1.2. Cette bibliothèque existe séparément pour le
JDK 1.1.
Swing utilise la même infrastructure de classes qu'AWT, ce qui permet de mélanger des
composants Swing et AWT dans la même interface. Il est toutefois recommandé d'éviter de les
utiliser simultanément car certains peuvent ne pas être restitués correctement. Les principales
différences sont :
• Utilisation du double buffering qui améliore les rafraichissements.
• Utilisation d'un panneau de contenu (contentPane) pour insérer des composants.

17
Le double-buffering est le fait d'avoir un buffer (voir l’image se tracer) où l'on dessine en
mémoire et un buffer qui s'occupe de l'affichage.
Principe est : dessiner sur le buffer mémoire (des images, des textes, des dessins...), ensuite,
dessiner le buffer mémoire dans le buffer d'affichage (séparation entre le chargement et
l’affichage).
Les composants Swing ne sont plus insérés directement au JFrame mais à l'objet contentPane (de
la classe JRootPane) qui lui est associé.

G. JDBC (Java DataBase Connectivity)


JDBC est une API fournie avec Java (depuis sa version 1.1) permettant de se connecter à des
bases de données, c'est-à-dire que JDBC constitue un ensemble de classes permettant de
développer des applications capables de se connecter à des serveurs de bases de données (SGBD).
L'API JDBC a été développée de telle façon à permettre à un programme de se connecter à
n'importe quelle base de données en utilisant la même syntaxe, c'est-à-dire que l'API JDBC est
indépendante du SGBD.
De plus, JDBC bénéficie des avantages de Java, dont la portabilité du code, ce qui lui vaut en plus
d'être indépendant de la base de données d'être indépendant de la plateforme sur laquelle elle
s'exécute.
Principaux éléments de JDBC
JDBC Driver API
L’interface java.sql.Driver est destinée aux développeurs de drivers (pilotes) désirant interfacer
un SGBD à Java en utilisant JDBC. La programmation d’un driver JDBC consiste à implanter les
éléments définis dans les interfaces abstraites de l’API JDBC.
DriverManager
L’interface java.sql.DriverManager gère la liste des drivers JDBC chargés dans la machine
virtuelle Java et la création des connexions TCP. Il sert également à mettre en correspondance les
URL utilisés par les connexions avec les drivers à disposition. Ainsi, le DriverManager
décortique les URL afin d’en extraire le sous-protocole et le service, puis recherche dans sa liste
de drivers celui (ou ceux) capable(s) d’établir la connexion. java.sql.Connection Gère les
connexions existantes, crée les requêtes, gère les transactions.
Une fois créée, une Connection va servir à envoyer des requêtes au SGBD et à récupérer les
résultats, ces deux tâches étant effectuées à l’aide des interfaces Statement (requête) et ResultSet
(ensemble résultat).
JDBC et SQL
SQL (sigle de Structured Query Language, en français langage de requête structurée) est un
langage informatique normalisé servant à effectuer des opérations sur des bases de données
relationnelles. La partie langage de manipulation de données de SQL permet de rechercher,
d'ajouter, de modifier ou de supprimer des données dans les bases de données relationnelles.

18
IX. Conclusion

En conclusion, l'implémentation d'une application de chat client-serveur offre une plateforme dynamique et
interactive pour la communication en temps réel. Grâce à cette application, les utilisateurs peuvent échanger
des messages instantanément, favorisant ainsi la collaboration et la connectivité. En mettant l'accent sur la
fiabilité, la sécurité et la convivialité, cette application répond aux besoins de communication modernes. En
continuant à développer et à améliorer cette plateforme, nous pouvons créer un environnement de
communication en ligne encore plus enrichissant et efficace pour les utilisateurs

19

Vous aimerez peut-être aussi