Académique Documents
Professionnel Documents
Culture Documents
Année: 2021-2022.
Resp. : Chakir Loqman
TP : Programmation réseau
Objectifs:
• Savoir échanger d’information via des objets Socket à adapter au protocole voulu et à englober dans un
tread suivant des cas.
• Savoir créer une application Client/Serveur entre deux machines permettant de communiquer et échanger
des flux de données.
Matériel nécessaire:
• Postes informatiques sous Windows dotés de cartes réseaux.
p u b l i c c l a s s Serveur1
{
/*
* Runs the server .
*/
p u b l i c s t a t i c void main ( String [] args ) throws IOException {
ServerSocket listener = new ServerSocket (9090);
System . out . println ( " en attente de connection ... " );
try {
while ( true ) {
Socket socket = listener . accept ();
try {
PrintWriter out =
new PrintWriter ( socket . getOutputStream () , true );
out . println ( " vous etes bien connecté au serveur " +
socket . g e t L o c a l S o c k e t A d d r e s s ());
}
finally {
socket . close ();
p u b l i c c l a s s Client1 {
p r i v a t e s t a t i c Socket s ;
1. Créer une classe TCPclient a comme attributs: severPort, serverName, et clientSocket, permettant de:
• Établir une connexion au serveur sur le port severPort par la méthode connect()
• D’envoyer un message au serveur par la méthode sendMessage()
• De récupérer le message envoyer par le serveur par la méthode recieveMessage()
2. Créer une classe TCPserver a comme attributs: Port, serverSocket, et Socket, permettant de:
• Accepter une connexion provenant d’un client TCPclient par la méthode accept()
• De récupérer le message envoyer par le client en utilisant la méthode recieveMessage()
• D’envoyer un message au client par la méthode sendMessage()
p u b l i c c l a s s Receive_UDP {
p u b l i c s t a t i c void main ( String [] args ) throws Exception {
/* il crée une prise datagram et la lie avec
* le numéro de port disponible sur la machine localhost . */
DatagramSocket ds = new DatagramSocket (3000);
byte [] buf = new byte [1024];
/* Ce constructeur de DatagramPacket est
* utilisé pour recevoir les paquets . */
DatagramPacket dp = new DatagramPacket ( buf , 1024);
ds . receive ( dp );
String str = new String ( dp . getData () , 0 , dp . getLength ());
System . out . println ( str );
ds . close ();
}
}
p u b l i c c l a s s Send_UDP {
p u b l i c s t a t i c void main ( String [] args ) throws Exception {
DatagramSocket ds = new DatagramSocket ();
String str = " Welcome " ;
InetAddress ip = InetAddress . getByName ( " 127.0.0.1 " );
/* Ce constructeur de DatagramPacket est utilisé
* pour envoyer les paquets */
DatagramPacket dp =new DatagramPacket ( str . getBytes () , str . length () , ip ,3000);
ds . send ( dp );
ds . close ();
}
}
4 Application
Travail demandé Ecrire une application Client/Serveur permettant de calculer le prix TTC des articles
achetées par un client. Le serveur demande les informations suivantes:
2. Le couple (P rix Hors T axe Article, N ombre Article) de chaque article achetée.
Le programme retourne le prix hors taxe, le taux de la valeur ajoutée, et le prix TTC des achats du client,
en précisant la date de l’opération.
TVA =20% du prix de l’article.
pour chaque article, on a:
P rix T T C = P rix Hors T axe Article + T V A