:: Enseignements :: ESIPE :: E4INFO :: 2011-2012 :: Applications réseaux ::
![[LOGO]](http://igm.univ-mlv.fr/ens/resources/mlv.png) |
Client/serveur UDP, représentation des données numériques
|
Exercice 1 - Longue Somme de Long
On souhaite mettre en place une sorte de calculette permettant à un client
de demander à un serveur le résultat de la somme de plusieurs nombres qui
sont des entiers long (sur 64 bits).
Le "protocole" convenu établi que pour cela, le client doit envoyer chaque
opérande, un par un, en binaire représenté dans la convention "network order"
(i.e. big endian -- l'octet de poids fort est enregistré à l'adresse mémoire
la plus petite). Le résultat de la somme totale sera renvoyé par le serveur
à la fin de la réception des opérandes, signalée par la première opérande nulle
(i.e. 0) reçue du client.
-
Implémenter les méthodes de conversions
longToByteArray et byteArrayToLong
permettant les conversions entre long et tableau de
byte en Big Endian. Tester ces méthodes en les appelant
l'une après l'autre et en vérifant que vous récupérez bien l'entier orginal.
- Implémenter un serveur mono-client qui rend ce service de
calculette, en supposant qu'il ne doit traiter qu'un seul client
à la fois.
- Implémenter un client très simple qui lit au clavier des entiers
long et les envoit succesivement à votre serveur. Lorsque le
client lit l'entier nul au clavier, il l'envoit au serveur et se place
en attente de réception de la réponse de ce serveur.
-
Vérifiez le fonctionnement du client et du serveur.
Que se passerait-il si un paquet était perdu entre le client et le serveur?
Entre le serveur et le client?
- Dans le cas où plusieurs clients utilisent
le serveur simultanément, que risque-t-il de se produire?
Mettre en place une solution utilisant la pseudo-connexion.
Quelle est la limite de cette solution?
- On souhaite rendre le serveur capable de traiter correctement
plusieurs clients simultaménement. Proposez une implémentation.
© Université de Marne-la-Vallée