내 노트북은 이더넷 케이블과 무선 랜 와 연결되어 내 이더넷 IP : 192.168.18.32 내 무선 랜 IP : 192.168.18.167가 지금은 통해 UDP 패킷을 전송하고 싶습니다 자바 와이파이 네트워크 인터페이스를 사용합니다.자바 UDP가 로컬 IP 주소에 바인딩하지 못할 (이더넷)
: 나는 내가 다음 해당 인터페이스 내가 192.168.18.167 다음 UDP 패킷을 IP 바인딩 경우 즉, UDP 패킷을 전송하는 데 사용되는 correspoding의 IP에 바인딩 할 경우내 코드는 무선 랜 인터페이스를 사용하여 전송됩니다 읽기
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);
하지만,이 전송 방법은
datagramSocketWifi.send(sendPacket);
datagramSocketet.send(sendPacket);
을 호출 될 때마다 그것은 다음과 같은 오류 보여줍니다
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)
,536을
답변을 시도한 적이 있습니까 https://stackoverflow.com/questions/8965155/cannot-assign-requested-address-jvm-bind? – Jotunacorn
이 두 송신 중 예외를 throw하는 송신은 어느 것입니까? 그리고 어디에서 데이터 그램을 보내려고하십니까? 송신 소켓이 실제로 목적지로 보내지는 인터페이스가 될 수 있습니까? – EJP
예. 나는 이것을 보았고 이것이 내 문제를 해결하지 못한다. –