0% ont trouvé ce document utile (0 vote)
38 vues5 pages

Reseaux Java

Le document contient plusieurs exercices sur la programmation Java avec des sockets, des flux et des threads. Les exercices portent sur la manipulation de flux, l'envoi de données via HTTP, la gestion de threads concurrents et le partage de ressources entre threads.

Transféré par

maryam.elgham
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 DOCX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
38 vues5 pages

Reseaux Java

Le document contient plusieurs exercices sur la programmation Java avec des sockets, des flux et des threads. Les exercices portent sur la manipulation de flux, l'envoi de données via HTTP, la gestion de threads concurrents et le partage de ressources entre threads.

Transféré par

maryam.elgham
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 DOCX, PDF, TXT ou lisez en ligne sur Scribd

..-.. fl ..i.i&!Ml.

SU;;,···, :ir'

I
·I Q
Examen de RIP (Partie Java-) Sujet de 4 Pages

Lundi 22 Mars 20
r
ours autorlses - bareme lndlcatlf
Documents du C

EXERCICE 1: .. kets pour telecharger une image sur le net en http? Justifiez votre
QUESTION 1. Peut-on unhser 1es soc
reponse.

QUESTION z,_ Peut-on ecrire: .


Socket socket• new Socket()
socket.setHost("l23,32,222,l )I
socket.setPort(45)J

QUESTION 3. Oonnez un exempe1


d'un filtre permettant de creer un BufferedReader a partir d'un
InputStream.
Donnez un exemple d'un Flot permettant d'ecrire:
QUESTION
4. out.write("Bonjour tout le monde");

EXERCICE 2:
QUESTIONS. Soit la page rpostphp qui contient le code php suivant:

<?php

$chaine =
$_POST('message']; echo
coder(chaine) ;

Ce code permet de recevoir une chaine de caracteres en mode POST et de renvoyer (afficher) une chaine
codee de celle-ci.
QUESTION 6, Ecrivez lecode java permettantd'envoyerune chaine de caracteres a la page web rpostphp
accessible via l'url suivante :
http://site.nom.com/ rpost.php
QUESTION Z Ecrivez le code Java permettant de recuperer la c;haine codee.

EXERCICE 3:
Soitle code suivant permettant decreer un fichier contenant 6 octets (65, 66, 67, 68, 69 et 70):
1: FileOutputStream fos c new FileOutputst "
2: byte[] bl= {65, 66, 67, 68, 69, 70}• ream( test.txt");
3: fos.write(bl);'
4: fos.close();

QUESTIQNB. Donnez le resultatd'execution du CODE .


smvant:
1: FileinputStream fis = new Filein ts
2:
int n = 4;pu treamc "test.txt"); yte [] b2 = new byte [n];
3:
int X ;
EXERCICE 4 ·
QUESTION 9. A la fin de !'execution du code suivant, donnez le contenu du buffer b:

FileOutputStream fos = new FileOutputStream("fichier.txt");


'
PrintStream ps = new P ri iatntStwam(fos);
ps.print("A BIENfO'l"{
ps•close();
E");l- f> 1
fos.close();
FileReader fr= new FileReader("ficl:!.ier.txt");
char { l b = { , Q,, , , u ,, A, , , L, , , 1, , , F, } ;
fr.read(b, O, 2);
fr.read(b, 1, 4) ;-
£ r. read( b, 2, 3);-
fr.read( b, 3, 2);--
fr.read(b, 2, 2)
fr.read(b, 4, l);-
fr.read(b, 2, 3);.._.
fr.read(b, 3, 2);
fr.read(b, 4, l);-
fr.read(b, 3, 2);

EXERCICE S:
Soit la Classe Source.java suivante :

public class Source extends Thread { private int x = O;


public void inc() {
x++;
}
public void afficher() { System.out.println(x);
}
}

Soit la classe Tache.·ava suivante :


public class Tache extends Thread { private Source source •
public Tache(Source so rce) { this.source= source;
}
public void run() {
for (inti= O; i < lOO; i++) {
try {Thread.sleep(2000)• } catch (InterruptedException e) {} source.inc();'
}
}
}

Et la derniere classe Main.java suivante :

public class Main {


publ i c s t at i c v o i d
S o ur c e s o ur c e _
main(Strin [
- new Source()•
new Tache(source).start()· ,
new Tache(source).start():
new Tache(source).start(,);
new T e ad(
P uhl 1' n';'W Runnable()
{ ';' void run()
{ while(true) {
try {Thread slee
source aff'.h p(lOOO);} catch (InterruptedException e) {}
}
try Th ic er();
{ read.eleep(l g 1 args)catch
OOO);} throws IOException {
(InterruptedException e) {}
}
}) •&tart() 1
L'execution de celeprogramme
donner resultat ( . .
. Mam.Java) peut
SU ivant: Alors que nous voudrions que le resultat soit
comrne suit:
0
1 0
3 3
5 6
7 9
9 12
10 15
12 18
14 21
16 24
18 27
30

QUESTION 10. Corrigez pour obtenir ce dernier resultat

EXERCICE 6:

Soit la Classe Source.java suivante :

public class Source extends Thread {


private int x = 0;
public void inc(int id) {
x++;
System.out.println(id+" "+:ir:);
}
}

Soit la classe Tache.java suivante :


public class Tache extends Thread { private Source source;
private int id;
public Tache(Source source, int id) { this.source= source
this.id= id;
}
public void run() {
for (inti= 0;i < 100; i++) {
try {Thread.sleep(l000); } catch (InterruptedBxception e) {}
source.inc(id);
}
}
}

Et la derniere classe Main.java suivante :

public class Main {


public static void main(String[J args) throws I0Bxception { source source= new Source();
new Tache(source, l).start(); new Tache(source, 2).start()
}

}
Page 3/4
7------------
QUESTION 11. Modifiez ce qu'il faut pour que QUESTION 12. Modifiez ce qu'il faut pour que
. ---

l'execution affiche le resultat suivant: quand lex de Ia dasse Source sera egal a
10, uniquement une seule tache
continue a incrementer X jusqu'a ce que
1 1 X soit egal
2 2 a 20, on revient a la normale, c'est a dire
1 3 Jes deux taches continuent a incrementer
2 4
x. Ce qui donne le resultat suivant:
1 5
2 6
1 1
1 7
2 2
2 8
1 3
1 9
2 10 2 4
1 11
1 5
2 12 2 6
1 13 1 7
2 14 2 8
1 9
101
1 15
2 16 2
l 17 1 11
2 18 1 12.
1 19 1 13
2 20 1 14
1 15
1 16
1 171
1 18
1 19

1
1

2
2
21
22
1 23
2 24
1 25
2 26
1 27
2 28
1 29
2 30

Vous aimerez peut-être aussi