2017-08-04 1 views
0

Nous avons le code en utilisant UDP socket pour la communication. Dans ce code, l'application envoie un paquet à un serveur donné (identifié par un nom d'hôte et un port donnés). Ce code est extrait à partir d'une base de code importante.IOException réseau est inaccessible

 class Test { 
      private static int UDP_PORT_NUMBER=15000; 

    public static void main(String args[]) { 
     String host = “192.168.2.10”; 
     byte[] bytes = {(byte)0xd1, 0x35, (byte)0x39, (byte)0xea, (byte)0xa2, (byte)0xd8}; 
     DatagramSocket datagramSocket = new DatagramSocket(); 
       final InetAddress inetAddress = InetAddress.getByName(host); 
       final DatagramPacket sendPacket = new DatagramPacket(bytes, bytes.length, 
         inetAddress, UDP_PORT_NUMBER); 
       datagramSocket.send(sendPacket); 
    } 
     } 

Cependant, je reçois exception suivante dans notre cas tout en appelant envoyer sur le socket Datagram:

java.io.IOException: Network is unreachable 
     at java.net.PlainDatagramSocketImpl.send(Native Method) ~[?:1.8.0_91] 
     at java.net.DatagramSocket.send(DatagramSocket.java:693) ~[?:1.8.0_91] 

Quelle est la signification du réseau injoignable dans UDP et comment est-elle détecté pour UDP qui est sans connexion? Quels sont les cas où je peux obtenir réseau IOException inaccessible dans le socket UDP?

+1

Imo _network unreachable_ n'a rien à voir avec UDP ou TCP, comme c'est le cas sur la couche 3 du modèle OSI. Il n'y a tout simplement pas de route vers l'adresse IP demandée. – Matt

+0

Il serait utile de savoir quelles sont les adresses IP de la machine où vous exécutez ce sont. – RealSkeptic

+0

1ère étape - Pouvez-vous pinguer l'adresse? –

Répondre

1

Le message réseau inaccessible est un message ICMP. Lorsqu'un hôte tente d'atteindre un autre hôte sur un réseau différent, il envoie le paquet de couche 3 à sa passerelle configurée. Si la passerelle (ou tout routeur dans le chemin) ne sait pas comment atteindre l'autre réseau, elle va générer un message ICMP et le renvoyer à l'hôte.