Sur un réseau, chaque terminal est associé
à une adresse réseau unique. Pour internet, on l'appelle
adresse IP.
Exemple sur IPv4 (32 bits), 127.0.0.1 = localhost.
Une socket est associée à l'adresse de son hôte.
On peut ouvrir plusieurs sockets sur le même hôte (une pour le web,
une pour le transfert de fichier, etc.), le numéro port
permet de les différencier, c'est un entier entre 0 et 65535.
Certains numéros de port sont réservés pour des protocoles particuliers
(HTTP:80, SSH:22, FTP:21)
La classe java.net.InetAddress modélise les
adresses IP. Elle offre trois méthodes statiques pour accéder à l'adresse
de l'hôte local, pour obtenir l'adresse à partir des quatre octets qui la compose
et pour obtenir l'adresse à partir du nom déclaré.
- Hôte local
- L'adresse de l'hôte local, généralement 127.0.0.1, est utile pour effectuer des tests
ou vérifier que le système est bien configuré.
InetAddress addr = InetAddress.getLocalHost();
- Par nom
- Dans la majorité des cas, on utilise la résolution par nom, qui utilise le serveur
DNS configuré sur la machine, mais de façon totalement transparente pour l'utilisateur.
InetAddress addr = InetAddress.getByName("www.unice.fr");
- Par adresse
- Enfin, on peut aussi donner directement l'adresse sous la forme d'un tableau d'octets,
quatre octets pour IPv4.
byte[] ip = {127,0,0,1};
InetAddress addr = InetAddress.getByName(ip);