TP JAVA 4 (entrées/sorties )
Avant de commencer : Voir le rappel de cours
Exercice 1
A/
Ecrire un programme « Ecrire » qui crée le fichier binaire (bytes) nommé
"donnees.dat". Il tire au hasard une série de 14 nombres compris
entre 0 et 32767 et les écrits dans le fichier.
Utiliser pour cela la méthode nextInt(int n) de la classe Random (java.util) qui retourne un entier entre 0 et n-1. vous pouvez aussi utiliser Math.random()
Ecrire un programme « Lire » qui lit le fichier binaire (bytes) nommé "donnees.dat" et qui affiche à l’écran la liste des valeurs.
B/
Modifier les programmes des question A et B pour éliminer la limitation de 14
nombres.
« Ecrire » devra recevoir en paramètre sur la ligne de commande le nombre de valeurs à générer vers le fichier, et devra recevoir également le nom du fichier sur la ligne de commande.
« Lire » devra également le nom du fichier sur la ligne de commande et lire tant qu'il y a des données dans le fichier.
Exercice 1 : écrire un client HTTP
A/ Ecrire un programme «clientHTTP » permettant de récupérer une page grâce à une requête HTTP GET sur un serveur Web de votre choix (client vu en cours, le code ne fait pas plus de 30 lignes).
La page sera affichée à l’écran. Vous pouvez mettre le nom du serveur et de la page « en dur » dans le source.
B/ Ecrire un programme permettant de récupérer une page identifiée par une URL passée en paramètre. Utiliser l’Objet « URL » du JDK qui dispose de getHost() et getPort() pour extraire les infos de connexion.
Exemple d’appel :
java clientHTTP http://localhost/index.html
Exercice 2 : Serveur Heure simple
A/
Ecrire un serveur TCP qui renvoie l’heure système à chaque fois qu’un client se connecte.
Testez le avec la commande telnet ( telnet ip port ).
Pour l’heure systeme vous pouvez utiliser Calendar (dans java.util) ou Date (dans java.util) ou encore SimpleDateFormater (dans java.util).
Exemple d’appel :
Calendar cal = Calendar.getInstance();
String rep = "\nIl est " + cal.get(Calendar.HOUR) +
"h " + cal.get(Calendar.MINUTE) +
"mn " + cal.get(Calendar.SECOND) + "s.";
//variante: avec une date
rep=new java.util.Date().toString();
B/
Etendre le serveur Heure pour qu’il attende des commandes du client :