> Tech > Un exemple de serveur de sockets Java

Un exemple de serveur de sockets Java

Tech - Par iTPro.fr - Publié le 24 juin 2010
email

par Dan Darnell
Cet article donne un aperçu de la programmation des sockets TCP/IP en explorant la façon de construire une application de suivi Clients (Customer Tracking) qui parle à  l'AS/400. De telles applications illustrent les avantages du modèle client/serveur.

Un avantage de ce modèle d'application consiste dans le fait qu'il place son accès à  la base de données sur l'AS/400, où se trouve un driver JDBC optimisé Outre les gains de performance potentiels, le fait de transférer la partie accès aux données des applications sur le serveur peut améliorer leur sécurité.
Un serveur de sockets propriétaire et personnalisé limite les actions potentiellement dangereuses de la part d'une application client. Une application client utilisant le driver JDBC de l'AS/400 Toolbox for Java peut accéder à , et mettre à  jour, pratiquement n'importe quel fichier du système (en fonctions des sécurités propres de l'AS/400). A l'inverse, une application cliente communiquant avec un serveur de sockets ne peut toucher des fichiers qu'en utilisant le protocole que l'application serveur définit.

Un exemple de serveur de sockets Java<BR>

Les sockets TCP/IP permettent de connecter un client à  un serveur pour qu’ils
s’échangent des données. Pour programmer en utilisant des sockets, on crée un
serveur chargé d’écouter et de traiter les requêtes d’un ou plusieurs clients.

Pour se connecter au serveur, le client doit connaître l’adresse IP de la plate-forme
serveur et le port sur lequel l’application serveur est à  l’écoute. Un port est
tout simplement un entier entre 1 à  65535 que l’on choisit ; sur un port, l’application
serveur peut être à  l’écoute de ses clients, en les distinguant des autres types
d’activité.

Les applications Telnet, par exemple, se connectent toujours au serveur en utilisant
le port 25, le navigateur Web sait que le service HTTP a toujours lieu sur le
port 80. Mon exemple d’application Customer Tracking (dont je parlerai dans un
moment) utilise 8500, que j’ai choisi arbitrairement comme numéro de port. Le
seul inconvénient du choix d’un port est que les nombres de 1 à  1023 sont réservés
à  des standards notoires comme Telnet et HTTP. Normalement, les applications peuvent
utiliser en toute sécurité tout numéro de port compris entre 1024 et 65535.

Une connexion par sockets fournit des flux d’entrée et de sortie permettant de
lire et d’écrire facilement des données entre systèmes, tout comme on lit et écrit
des données en utilisant des fichiers stream (c’est-à -dire, des fichiers dans
l’IFS). Allons un peu plus loin : en utilisant la fonction de sérialisation de
Java, on peut utiliser des flux socket pour échanger des objets entiers entre
systèmes.



Un serveur doit être capable de recouvrir des threads multiples, au moins
un thread par client, afin que des communications puissent se dérouler simultanément.



En Java, il est facile de créer une application serveur de sockets capable de
servir un client unique. Malheureusement, pour aller au-delà  d’un seul client,
il faut une programmation bien plus élaborée. Pour pouvoir traiter des clients
multiples, un serveur doit être capable de recouvrir des threads multiples, au
moins un thread par client, afin que des communications puissent se dérouler simultanément.





La figure 1 présente un serveur de sockets écrit de telle sorte que des clients
multiples puissent se connecter en même temps. Un seul serveur écoute sur un port
unique les clients qui se connectent, mais un objet de communication sockets threaded
distinct est déployé pour traiter chaque client.

Téléchargez cette ressource

Préparer l’entreprise aux technologies interconnectées

Préparer l’entreprise aux technologies interconnectées

Avec la « quatrième révolution industrielle », les environnements hyperconnectés entraînent de nouveaux risques en matière de sécurité. Découvrez, dans ce guide Kaspersky, comment faire face à cette nouvelle ère de vulnérabilité.

Tech - Par iTPro.fr - Publié le 24 juin 2010