2017-02-06 1 views
0

Hy gars, mon code ici pour créer un serveur simple fonctionne très bien avec l'adresse de l'hôte local (127.0.0.1). Voici mon code. Ma question est, comment puis-je utiliser IP-192.168.8.1 du routeur au lieu de 127.0.0.1? J'ai aussi essayé l'adresse IP de http://whatsmyip.org mais toujours eu cette exception:Comment créer un objet ServerSocket sans l'adresse localhost

java.net.BindException: Cannot assign requested address: JVM_Bind 
    at java.net.DualStackPlainSocketImpl.bind0(Native Method) 
    at java.net.DualStackPlainSocketImpl.socketBind(DualStackPlainSocketImpl.java:106) 
    at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:387) 
    at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:190) 
    at java.net.ServerSocket.bind(ServerSocket.java:375) 
    at java.net.ServerSocket.bind(ServerSocket.java:329) 
    at Zig.<init>(Main.java:26) 
    at Main.main(Main.java:8) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:498) 
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144) 
Exception in thread "main" java.lang.NullPointerException 
    at Zig.start(Main.java:38) 
    at Main.main(Main.java:9) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:498) 
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144) 

Je voulais créer un simple serveur avec que je peux accéder à distance à la fois avec un autre ordinateur ayant une connexion Internet. Ou est-ce que je peux faire la communication entre deux ordinateurs sur Internet?

Cordialement.

Répondre

0

comment puis-je utiliser le IP du routeur - 192.168.8.1

Vous ne pouvez pas utiliser IP du routeur. Vous devriez utiliser l'IP disponible dans le système.

Notez cette erreur:

> java.net.BindException: Cannot assign requested address: JVM_Bind 

Le bind échoue parce que l'adresse n'est pas celle du système.

0

Si vous souhaitez que vos 2 appareils communiquent via LAN (réseau local), vous pouvez utiliser les adresses attribuées par votre routeur à ces appareils (c'est l'adresse 192.168.8.X que vous avez mentionnée.) EDIT: Comme Prabhu l'a mentionné, utilisez les appareils Adresse IP, pas l'adresse IP des routeurs! Vous pouvez généralement trouver les adresses IP que votre routeur a assignées aux périphériques connectés dans l'interface d'administration de votre routeur). N'oubliez pas que votre routeur peut attribuer une adresse différente aux mêmes périphériques à l'avenir. La plupart des routeurs disposent d'une fonction qui attribue toujours la même adresse IP à un périphérique spécifique. En outre, certains routeurs bloquent la communication entre les dispositifs locaux (c'est-à-dire entre les dispositifs filaires et WiFi) pour des raisons de sécurité. Vérifiez la configuration de votre routeur pour plus d'informations et d'options de configuration!

Si vous souhaitez que vos appareils se connectent via Internet, vous devez utiliser l'adresse IP globale de votre routeur (probablement celle que vous avez trouvée avec whatsmyip). En outre, votre routeur ne bloque généralement que les requêtes entrantes provenant d'Internet pour des raisons de sécurité. Encore une fois, votre routeur a probablement une fonction appelée Redirection de port, qui vous permet de rediriger les demandes vers un périphérique spécifique (et un port spécifique de ce périphérique) sur votre réseau local. Utilisez ceci avec précaution, car cela ouvre (en partie) les mécanismes de sécurité intégrés de vos routeurs. Enfin, en fonction de votre fournisseur, vous pouvez avoir une adresse IPv4 que vous partagez avec d'autres clients (voir Wikipedia) Internet IPv4 du tout et votre seule chance est d'utiliser le protocole IPv6 (si disponible)