Architecture et programmation réseau

Quelques morceaux d'exemples de serveur avec les NIO

Comme présenté succinctement dans le dernier cours et sugéré à la fin du polycopié sur les NIO, voici des "morceaux de bouts de code" Java correspondant à différentes versions d'un serveur TCP (de mise en majuscule) utilisant les nouvelles classes d'entrée-sortie de Java, les NIO.

Bien évidemment, le code n'est pas propre et ne saurait être utilisé dans un autre but que l'illustration de l'utilisation des canaux sur les sockets TCP et des sélecteurs.

Mise en majuscule

Le thème récurrent est un serveur de mise en majuscules : il accepte de ses clients des octets représentant des chaînes de caractères, et il renvoit les octets correspondant à ces chaînes mises en majuscule. Plusieurs versions sont présents ci-dessous :

Plus mieux : Echo

La version totalement non bloquante d'un serveur Echo proposée par la classe EchoNonBlockingServer.java propose un code plus propre, et illustre de manière plus complète, bien que simple, la mise en attente pour la lecture, l'écriture ou la connexion, ainsi qu'une autre utilisation de l'attachement lors de l'enregistrement.


Etienne.Duris[at]univ-mlv.fr - © Université de Marne-la-Vallée Mars 2006 - http://www-igm.univ-mlv.fr/~duris