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
- ...
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.
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 :
Exemple : http://www.gaudry.be:80/infobrol.html
La structure d'une URL dépend en outre du protocole employé.
URL et protocole HTTP :
URL et protocole FTP :
URL et e-mail :
URL et fichier local :
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()
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.
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.
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é.
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.
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.
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.
- ↑a,b,c,d,e,f… 5 more links… Uniform Resource Locator : corresponds to « localisateur uniforme de ressource » en français
- ↑a,b,c,d,e,f… 5 more links… URL : “Uniform Resource Locator” (en français, « localisateur uniforme de ressource »)
- ↑ Domain Name System : corresponds to « système de noms de domaine » en français
- ↑ Hypertext Transfer Protocol : corresponds to « protocole de transfert hypertexte » en français
- ↑ Transmission Control Protocol : corresponds to « protocole de contrôle de transmission » en français