On Thu, 26 Jun 2003, Herve AGNOUX wrote:

> Bonjour,
>
> J'ai d�couvert d'o� sortait mon 0.0.0.0 ; cela vient d'un
> ServerSocket.getInetAddress(). J'avais utilis� cette m�thode en me disant :
> "Puisque j'ai un ServerSocket, autant m'en servir pour obtenir l'adresse de
> ma machine ! " D'un cot�, je fais un new ServerSocket(), de l'autre j'ai
> l'adresse de ma machine, je me trouvais tr�s malin.
>
> Est-ce que j'ai rien compris, est-ce que on a toujours 0.0.0.0, est-ce qu'il
> faut absolument envoyer dans le constructeur du ServerSocket une InetAddress
> sinon il ne la trouve pas tout seul ???

 C'est le comportement normal en effet. Car si la machine a plusieurs
interfaces l'adresse de la machine n'est pas unique et le server socket peut
�couter sur toutes les interfaces � la fois. Si on fixe quelle interface on
�coute � la cr�ation du serversocket en lui passant la bonne Inetaddress l� on
n'a plus 0.0.0.0 mais l'@ correcte.

Mais c'est le serpent qui se mord la queue n'est-ce pas ? puisqu'il faut
l'@ pour initier le serversocket pour qu'il renvoie l'@ :-)

En fait, le bon moyen d'obtenir l'@ de sa machine c'est d'utiliser
  InetAddress.getLocalHost()  si la machine n'a qu'une interface
ou
InetAddress.getAllByName(String host)  si la machine a plusieurs interfaces


Pascal NICOLAS                Universite d'ANGERS
E Mail   : [EMAIL PROTECTED]
Web Page : http://www.info.univ-angers.fr/pub/pn/









Répondre à