Mon ordinateur portable est connecté avec un câble ethernet et wifi mon ip ethernet: 192.168.18.32 mon wifi ip: 192.168.18.167 Je voudrais envoyer un paquet udp par Java en utilisant l'interface réseau wifi. Je lis que si je lie à l'ip correspoding alors l'interface correspondante sera utilisée pour envoyer des paquets UDP à savoir si je lie à ip 192.168.18.167 alors les paquets UDP envoyés en utilisant l'interface wifiJava UDP ne peut pas se lier à l'adresse IP locale (Ethernet)
mon code est:
final String wiFiCardAddressName = "192.168.18.32";
final String ethernetAddressName = "192.168.18.167";
final InetAddress wiFiCardAddress = InetAddress.getByName(wiFiCardAddressName);
final InetAddress ethernetAddress = InetAddress.getByName(ethernetAddressName);
DatagramSocket datagramSocketWifi = new DatagramSocket(10000, wiFiCardAddress);
System.out.println(ethernetAddress);
DatagramSocket datagramSocketEt = new DatagramSocket(6666, ethernetAddress);
DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAddress, serverPort);
mais chaque fois que cette méthode d'envoi est appelé
datagramSocketWifi.send(sendPacket);
datagramSocketet.send(sendPacket);
Il montre l'erreur suivante:
Exception in thread "main" java.net.BindException: Cannot assign requested address: Datagram send failed
at java.net.DualStackPlainDatagramSocketImpl.socketSend(Native Method)
at java.net.DualStackPlainDatagramSocketImpl.send(Unknown Source)
at java.net.DatagramSocket.send(Unknown Source)
at socket_test.Client_UDP_Bind.main(Client_UDP_Bind.java:50)
Avez-vous essayé la réponse dans https://stackoverflow.com/questions/8965155/cannot-assign-requested-address-jvm-bind? – Jotunacorn
Lequel de ces deux envoie l'exception? Et où essayez-vous d'envoyer le datagramme? et est-ce que l'interface de la socket d'envoi peut vraiment envoyer à cette destination? – EJP
Oui. J'ai vu ceci et cela ne résout pas mon problème –