Programmation réseau en Java
© 2001 Toni Soueid
1
Programmation réseau en Java
0 – Introduction
Les réseaux sont devenus une partie intégrale de notre vie quotidienne que nous soyons des
professionnels, des employés ou tout simplement des utilisateurs d’Internet.
Tout langage de programmation qui se respecte devra en quelque sorte offrir au
programmeur une interface de programmation réseau.
Java ne fait pas exception. En effet un paquetage spécial (java.net) est fourni pour faciliter
la programmation réseau.
Tous ceux qui ont travaillé avec la programmation réseau en langage C (ou d’autres
langages de « bas-niveau ») constateront que Java fournit une interface très intuitive et facile
à comprendre en ce qui concerne la programmation réseau.
Dans ce chapitre nous illustrerons les principaux concepts de la programmation réseau dans
Java. Dans une première section nous parlerons de la transmission de données en mode
datagramme. Dans une seconde section nous parlerons de la transmission en mode
connecté.
1 – Mode datagramme
Dans ce chapitre nous assumons que le lecteur est familier avec les principes des protocoles
TCP et UDP notamment la différence entre mode datagramme et mode connecté.
Dans certains cas de programmation réseau il est uniquement nécessaire d’envoyer des
données d’un ordinateur à un autre sans avoir à se soucier de la bonne réception de ces
données par le destinataire. Parfois les contraintes temps-réel d’une certaine application
exigent l’emploi d’un tel mode de fonctionnement.
Dans de tels cas il suffit de grouper les données dans une entité qu’on appelle datagramme
et qu’on envoi sur le réseau. Un datagramme peut être définit comme étant un message
qu’on envoie sur le réseau et dont l’arrivée, le temps d’arrivée et le contenu ne sont pas
garantis.
Dans l’Internet le protocole UDP (User Datagram Protocol) assure cette fonctionnalité.
Le paquetage java.net fourni deux classes pour faciliter la programmation réseau en
mode datagramme : DatagramPacket et DatagramSocket.
Les données sont mises dans un objet de type DatagramPacket qui est envoyé sur le
réseau par le biais d’un objet de type DatagramSocket.
Avant d’aborder en détail la programmation en mode datagramme, nous allons introduire la
classe InetAddress et les services qu’elle nous fournit. Cette classe met à notre
disposition un ensemble de méthodes permettant la résolution des noms de machines en
adresses IP et vice versa.