• Aucun résultat trouvé

TPn 3Protocoles:d´ecouverte semestre Universit´eParisDiderot–Paris7Programmationr´eseauL3InformatiqueAnn´ee2011–2012,2

N/A
N/A
Protected

Academic year: 2022

Partager "TPn 3Protocoles:d´ecouverte semestre Universit´eParisDiderot–Paris7Programmationr´eseauL3InformatiqueAnn´ee2011–2012,2"

Copied!
1
0
0

Texte intégral

(1)

Universit´ e Paris Diderot – Paris 7 Programmation r´ eseau L3 Informatique Ann´ ee 2011–2012, 2

`eme

semestre

TP n

3

Protocoles : d´ ecouverte

Dans ce TP, toutes les transmmisions seront faites en mode connect´ e TCP.

En Java, il est possible d’ouvrir une connexion ` a un service de port donn´ e sur une machine donn´ ee en utilisant la classe java.net.Socket. Par exemple :

Socket s = new Socket(machine,port);

Les m´ ethodes getOutputStream() et getInputStream() permettent de retrouver des flux d’entr´ ees/sorties (respectivement de type OutputStream et InputStream) pour ´ ecrire et lire sur cet objet de communication. De fa¸ con ` a manipuler ces objets, regardez comment les utiliser avec les classes PrintStream, InputStreamReader et BufferedReader.

Exercice 1 [Client daytime]

Ecrivez un programme Java ´ jdaytime qui se connecte au service daytime d’une machine donn´ ee en param` etre et r´ ecup` ere la date pour l’afficher ` a l’´ ecran.

Exercice 2 [Client/Serveur]

1. ´ Ecrivez un client et un serveur en Java. Le serveur choisira un entier al´ eatoirement entre 1 et 100. Et r´ epondra ”+” si son entier est plus grand que celui envoy´ e par le client, ”-” s’il est plus petit et s’il est ´ egal il r´ epondra ”=” avant de fermer la connexion. Le client affichera ce qu’il re¸ coit du serveur.

2. Sans changer le serveur, modifier votre client pour que ce soit plus lisible pour l’utilisateur.

3. Tester votre client avec le serveur d’un de vos camarades, et inversement.

Indications : La classe InetAddress vous permet d’avoir des informations sur la machine o` u vous ex´ ecutez votre programme, par exemple :

InetAddress.getLocalHost().getHostName();.

Pour cr´ eer le serveur utilisez la classe ServerSocket.

Exercice 3 [Thread]

A l’aide des classes ` Thread et Runnable, modifiez votre serveur afin qu’il accepte plusieurs connections simultan´ ees.

1

Références

Documents relatifs

Modi- fiez votre serveur pour que apr`es avoir v´erifi´e que le chemin de la requˆete com- mence par ”/” et ne contient pas la chaˆıne ”/../” 1 , il retourne au client le

Lancez la commande nc avec l’option -l 8080, cela ouvre un serveur sur votre machine locale sur le port 8080.. Tapez une ligne dans

Les hints prennent aussi le forme d’une structure addrinfo : vous pouvez indiquer des restrictions sur le type de socket que vous souhaitez utiliser (si vous n’avez aucune

Pour cela vous pouvez utiliser la commande telnet (usage : telnet machine service o` u service peut ˆetre soit le num´ero de service soit le nom du service)1. D´eterminez le

Dans ce protocole, les informations binaires sont en g´en´eral cod´ees en paquets, et envoy´ees sur le r´eseau, l’octet de poids le plus fort en premier, c’est-` a-dire selon le

L’id´ee est la suivante : un client producteur envoie au serveur une chaˆıne de caract`eres qu’il aura re¸cu par l’entr´ee standard (le clavier), le serveur stocke alors

Lorsqu’il d´etermine que c’est n´ecessaire, le client SNTP envoie au serveur une requˆete sous forme d’un paquet UDP qui contient la date ` a laquelle ce message est transmis..

int bind(int socket, const struct sockaddr *adresse, socklen_t longueur);. int listen(int socket,