Prenez le contrôle de votre ordinateur à partir de votre Smartphone

Cet article a pour objet d'aborder les fondements de la programmation réseau et plus spécifiquement la programmation des sockets à travers la réalisation d'un programme proposant de réaliser différentes tâches sur un ordinateur distant à partir d’une application exécutée sur un Smartphone. Nous utiliserons à cet effet le langage Java qui confère une interopérabilité certaine et jouit d'une sorte de “standardisation” pour les fonctions réseaux et leur utilisation.

Une socket est utilisée pour assurer la communication de données entre un serveur et un ou plusieurs clients au sein d’un réseau de type OSI, comme par exemple les réseaux TCP/IP. Pour cela, le système d'exploitation met en place une ligne directe (un flux de données) entre ces deux entités dont les extrémités correspondent schématiquement aux sockets. Pour illustrer notre propos, nous pouvons évoquer le travail des standardistes qui, autrefois, branchaient leurs fils dans les bonnes prises pour établir la communication entre deux personnes. Fidèle à la philosophie propre au monde Unix, une socket se manipule de la même manière qu'un fichier. A cet effet, chaque socket est associée à un descripteur, autrement dit une structure de données à laquelle peuvent se lier indifféremment un fichier sur disque, un terminal, une imprimante, etc. Pour manipuler les sockets, il se montrerait donc tout à fait envisageable d'exploiter les primitives « read() », « write() » et « close() » habituellement dévolues aux opérations sur les fichiers. Notons simplement qu'il existe des fonctions davantage spécifiques à l’utilisation des sockets et donc d'usage plus simple et plus efficace. Le mode de connexion employé par les sockets se décline en deux versions : le mode datagramme et le mode connecté.

Vincent Perdereau

S'ABONNER
Egalement au sommaire n°: 149