Communiquer à travers un réseau avec Java

           

Le langage Java permet une communication entre machines qui s'appuie sur le protocole IP (Internet Protocol), protocole de base du réseau Internet. Il y a plusieurs façons de faire communiquer des machines.

On peut simplement télécharger une ressource Internet référencée par une URL (Uniform Resource Locator. On peut employer pour cela la classe java.net.URL. Si on veut disposer d'un certain contrôle sur le téléchargement des données, on peut obtenir des fonctionnalités supplémentaires grâce à la classe URLConnection du paquetage java.net ; nous n'illustrons pas cette classe.

Nous verrons comment communiquer par l'envoi et la réception de datagrammes (communication utilisant le protocole UDP pour User Datagram Protocol). Dans ce mode de communication, il n'y a pas de liaison établie entre les deux machines qui doivent communiquer ; les messages sont envoyés au coup par coup, munis de l'adresse du destinataire ; ce mode de communication est rapide et efficace mais, par sa nature, il n'offre pas de garantie sur le fait qu'un message atteigne bien sa destination ou n'ait pas été altéré ou encore sur l'ordre d'arrivée de différents messages. Les classes utilisées pour ce type de communication sont essentiellement DatagramPacket, DatagramSocket et MulticastSocket du paquetage java.net. Nous verrons un exemple d'envoi et de réception de messages par datagrammes. Si on souhaite communiquer à l'intérieur d'un groupe, on peut aussi communiquer en envoyant des datagrammes à l'ensemble des membres du groupe en utilisant le multicast ; nous verrons aussi deux exemples de ce type de communication.

On peut préférer une communication en mode connecté (communication utilisant le protocole TCP pour Transmission Control Protocol). On établit entre deux machines une connexion par laquelle on ouvre des flux de données, connexion qu'on conserve tout le temps de la communication. Les classes ServerSocket et Socket du paquetage java.net doivent être employées pour ce type de communication. Des classes du paquetage java.io sont utilisées pour établir les flux de données. Nous illustrons ce mode de communication par un exemple. Ce mode de communication est plus fiable

Si vous voulez faire un exercice :


© IrèneCharon, Télécom ParisTech 2011