59 votes

Impossible d'attribuer l'adresse demandée à l'aide de ServerSocket.socketBind

Lorsque j'essaie de configurer un serveur de socket, j'ai un message d'erreur :

 Exception in thread "main" java.net.BindException: Cannot assign requested address: JVM_Bind
    at java.net.PlainSocketImpl.socketBind(Native Method)
    at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:383)
    at java.net.ServerSocket.bind(ServerSocket.java:328)
    at java.net.ServerSocket.<init>(ServerSocket.java:194)
    at java.net.ServerSocket.<init>(ServerSocket.java:106)
    at socketyserver.SocketyServer.main(SocketyServer.java:12)
Java Result: 1

Le code entier est le plus simple car il peut l'être :

 public static void main(String[] args) throws UnknownHostException, IOException
{
    ServerSocket serverSocket;
    serverSocket = new ServerSocket(9999);
}

Je suis sûr à 100% que mes ports sont transférés, le pare-feu Windows est désactivé. Rien ne bloque le port 9999. Quoi d'autre peut mal tourner ?

36voto

L Bechir Points 376

Cela peut être lié à une mauvaise configuration de votre /etc/hosts . Dans mon cas, c'était comme ça : 192.168.1.11 localhost au lieu de 127.0.0.1 localhost

16voto

cquezel Points 270

Juste pour les autres qui pourraient regarder cette réponse dans l'espoir de résoudre un problème similaire, j'ai reçu un message similaire car mon adresse IP a changé.

 java.net.BindException: Cannot assign requested address: bind
    at sun.nio.ch.Net.bind(Native Method)
    at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:126)
    at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:59)
    at org.eclipse.jetty.server.nio.SelectChannelConnector.open(SelectChannelConnector.java:182)
    at org.eclipse.jetty.server.AbstractConnector.doStart(AbstractConnector.java:311)
    at org.eclipse.jetty.server.nio.SelectChannelConnector.doStart(SelectChannelConnector.java:260)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59)
    at org.eclipse.jetty.server.Server.doStart(Server.java:273)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59)

15voto

Olathe Points 1119

L'erreur indique Cannot assign requested address . Cela signifie que vous devez utiliser la bonne adresse pour l'une de vos interfaces réseau ou 0.0.0.0 pour accepter les connexions de toutes les interfaces.

Les autres solutions concernant les ports ne fonctionnent qu'après une magie noire parfois défaillante (comme après le redémarrage de certains ordinateurs mais pas d'autres) car le port n'est absolument pas pertinent.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X