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
  • ...

Inhoudsopgave 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.

Inhoudsopgave 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()

Inhoudsopgave 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.

Inhoudsopgave 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.

Inhoudsopgave 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é.

Inhoudsopgave 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.

Inhoudsopgave 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.

Inhoudsopgave 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.

Nederlandse vertaling

U hebt gevraagd om deze site in het Nederlands te bezoeken. Voor nu wordt alleen de interface vertaald, maar nog niet alle inhoud.

Als je me wilt helpen met vertalingen, is je bijdrage welkom. Het enige dat u hoeft te doen, is u op de site registreren en mij een bericht sturen waarin u wordt gevraagd om u toe te voegen aan de groep vertalers, zodat u de gewenste pagina's kunt vertalen. Een link onderaan elke vertaalde pagina geeft aan dat u de vertaler bent en heeft een link naar uw profiel.

Bij voorbaat dank.

Document heeft de 21/10/2005 gemaakt, de laatste keer de 02/08/2019 gewijzigd
Bron van het afgedrukte document:https://www.gaudry.be/nl/java-net.html

De infobrol is een persoonlijke site waarvan de inhoud uitsluitend mijn verantwoordelijkheid is. De tekst is beschikbaar onder CreativeCommons-licentie (BY-NC-SA). Meer info op de gebruiksvoorwaarden en de auteur.

Notes
  1. a,b,c,d,e,f… 5 meer links… Uniform Resource Locator : komt overeen met « localisateur uniforme de ressource » en français

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

  3.  Domain Name System : komt overeen met « 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 : komt overeen met « protocole Internet » en français

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

  7.  Hypertext Transfer Protocol : komt overeen met « protocole de transfert hypertexte » en français

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

  9.  Transmission Control Protocol : komt overeen met « protocole de contrôle de transmission » en français

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

Inhoudsopgave Haut