Introduction au package java.net

Le package java.net nous fournit un ensemble de classes qui nous permettent d'utiliser les protocoles Internet.

Comment accéder aux ressources dans le cadre d'applications Client/Serveur ? C'est par le biais des URL que les ressources sont localisées sur le Web (pour être plus complet, l'URL est envoyée à un DNS qui la traduit en adresse IP, et les ressources sont en réalité accédées par leur adresse IP).

Le langage Java nous aide en nous proposant différentes classes :

  • InetAddress
  • URL
  • URLConnection
  • HttpURLConnection
  • URLEncoder
  • URLDecoder
  • Socket
  • ServerSocket
  • ...

Contents Haut

java.net.InetAddress

La classe java.net.InetAddress représente une adresse Internet. Elle supporte les adresses IP numériques et les noms d'hôtes. La classe InetAddress possède des méthodes statiques qui permettent la manipulation des adresses Internet :

  • InetAddress getLocalHost() nous retourne l'adresse Internet de la machine locale.
  • InetAddress getByName(String host) nous retourne une adresse Internet en fonction d'un nom d'hôte.
  • InetAddress[] getAllByName(String host) nous retourne un tableau d'adresses Internet en fonction d'un nom d'hôte.
  • String getHostAddress() nous retourne une adresse IP numérique sous la forme d'une chaîne de caractères dans laquelle les 4 octets de l'adresse sont séparés par des points.
  • String getHostName() nous retourne le nom d'hôte ou le nom du serveur pour une adresse
  • boolean isMulticastAddress() nous retourne un booléen qui indique si l'adresse est de type multicast.
  • les méthodes boolean equals(Object obj), int hashCode(), et String toString() surchargent (“override”) celles de la classe Object.

Contents Haut

java.net.URL

Qu'est-ce qu'une URL ?

Angl : Uniform Resource Locator.

Adresse Internet exploitée par les navigateurs. C'est l'adressage standard de n'importe quel document, sur n'importe quel ordinateur en local ou sur Internet.

Structure de base d'une URL :

protocole://serveur/répertoire/document.extension


Exemple : http://www.gaudry.be:80/infobrol.html ;-)

La structure d'une URL dépend en outre du protocole employé.
URL et protocole HTTP :
http://‹serveur›:‹port›/‹chemin›?‹paramètre1›=‹valeur1›&‹paramètre2›=‹valeur2›

URL et protocole FTP :
ftp://‹utilisateur›:‹mot de passe›@‹serveur›:‹port›/‹chemin›

URL et e-mail :
mailto:‹adresse email›

URL et fichier local :
file:///‹serveur›/‹chemin›

La classe java.net.URL

La classe java.net.URL permet de travailler sur la validité syntaxique d'une URL. Nous devons cependant être attentifs au fait que la classe URL ne nous aide pas à vérifier la présence ou l'absence de la ressource vers laquelle elle pointe.

Certains constructeurs de URL peuvent lancer des exceptions de type MalformedURLException si aucun protocole valide n'est trouvé, ou si la chaîne de caractères ne peut être analysée (“parced” selon les règles de syntaxe d'une URL.

La classe URL nous fournit un ensemble de méthodes de traitement d'une URL :

  • possibilités d'accès aux éléments d'une URL :
    • String getProtocol()
    • String getHost()
    • int getPort()
    • String getFile()
    • String getRef()
  • lecture d'un objet Web pointé par une URL :

    • Object getContent()
    • InputStream openStream()
  • conversion d'une URL en chaîne de caractères pour l'affichage ou l'impression :
    • String toExternalForm()
    • String toString()
  • comparaison des URL :
    • boolean equals(Object obj)
  • comparaison des objets Web pointés par des URL :
    • boolean sameFile(URL other)
  • création d'un objet URLConnection :
    • URLConnection openConnection()

Contents Haut

java.net.URLConnection

La classe URLConnection est une classe abstraite qui permet d'obtenir un flux de données par une connection vers une ressource pointée par une URL.

Contents Haut

java.net.HttpURLConnection

La classe HttpURLConnection est une sous-classe de URLConnection qui nous fournit un accès direct aux paramètres HTTP impliqués dans une connexion de type Client/Serveur. Chaque instance de HttpURLConnection peut être utilisée pour effectuer une simple requête, mais la représentation sous-jascente de la connexion réseau au serveur HTTP peut être partagée de manière transparente pour d'autres instances.

Contents Haut

java.net.URLEncoder

La classe URLEncoder est une simple classe qui nous fournit deux méthodes statiques :

  • String encode(String s), méthode obsolète (“deprecated”).
  • String encode(String s, String enc)pour encoder la chaîne de caractères s en utilisant l'encodage enc.

Le plus souvent, les données proviennent d'un formulaire rempli par les données du côté client, et envoyées à un script qui est exécuté du côté serveur.

Le format d'encodage MIME de type application/x-www-form-urlencoded se présente de cette manière : nom1=valeur1&nom2=valeur2.

Les espaces sont remplacés par le signe plus (+) et les caractères spéciaux sont remplacés par le pourcent (%) suivi du code du caractère. Le code du caractère est la représentation hexadécimale de sa valeur sur 8bits.

L'encodage recommandé est UTF-8, mais pour des raisons de compatibilités, si l'encodage n'est pas spécifié, l'encodage par défaut de la plateforme est utilisé.

Contents Haut

java.net.URLDecoder

La classe URLDecoder est une simple classe qui nous fournit deux méthodes statiques :

  • String decode(String s), méthode obsolète (“deprecated”).
  • String decode(String s, String enc)pour encoder la chaîne de caractères s en utilisant l'encodage enc.

Contents Haut

java.net.Socket

  • Dans Internet, combinaison de l’adresse IP et de l’adresse du port qui permet de définir la destination du trafic de réseau transmis depuis le programme d’application (client).
  • Interface de programmation permettant les communications entre Unix et un réseau basé sur les protocole définis par TCP-IP. Placées sur les protocoles de réseau SNA, les sockets permettent à des applications conçues initialement pour TCP-IP d’utiliser les protocoles d’IBM.

La classe Socket nous permet des communications, basées sur le protocole TCP, entre deux machines distantes. Nous pouvons employer les sockets pour développer des logiciels qui utilisent des services fournis par des serveurs d'applications orientées connexion.

La classe Socket nous propose huit constructeurs, dont deux sont obsolètes (pour ces deux constructeurs, nous préférerons utiliser des constructeurs DatagramSocket), pour créer des sockets et éventuellement les connecter à un hôte de destination et un port.

Contents Haut

java.net.ServerSocket

La classe ServerSocket implémente un serveur socket TCP, et est utilisée pour créer un socket du coté serveur. Elle fournit 4 constructeurs spécifiant :

  • un port pour lequel le serveur écoute les requêtes entrantes (optionnel).
  • un nombre maximum de demandes de connexions en attente (optionnel).
  • une adresse Internet (optionnel).

La méthode public Socket accept() est utilisée pour renvoyer un socket une fois la connexion établie.

English translation

You have asked to visit this site in English. For now, only the interface is translated, but not all the content yet.

If you want to help me in translations, your contribution is welcome. All you need to do is register on the site, and send me a message asking me to add you to the group of translators, which will give you the opportunity to translate the pages you want. A link at the bottom of each translated page indicates that you are the translator, and has a link to your profile.

Thank you in advance.

Document created the 21/10/2005, last modified the 02/08/2019
Source of the printed document:https://www.gaudry.be/en/java-net.html

The infobrol is a personal site whose content is my sole responsibility. The text is available under CreativeCommons license (BY-NC-SA). More info on the terms of use and the author.

Notes
  1. a,b,c,d,e,f… 5 more links… Uniform Resource Locator : corresponds to « localisateur uniforme de ressource » en français

  2. a,b,c,d,e,f… 5 more links… URL : “Uniform Resource Locator” (en français, « localisateur uniforme de ressource »)

  3.  Domain Name System : corresponds to « système de noms de domaine » en français

  4.  DNS : “Domain Name System” (en français, « système de noms de domaine »)

  5. a,b Internet Protocol : corresponds to « protocole Internet » en français

  6. a,b IP : “Internet Protocol” (en français, « protocole Internet »)

  7.  Hypertext Transfer Protocol : corresponds to « protocole de transfert hypertexte » en français

  8.  HTTP : “Hypertext Transfer Protocol” (en français, « protocole de transfert hypertexte »)

  9.  Transmission Control Protocol : corresponds to « protocole de contrôle de transmission » en français

  10.  TCP : “Transmission Control Protocol” (en français, « protocole de contrôle de transmission »)

Contents Haut