发送没有互联网连接的DatagramPacket - Android

jus*_*oob 7 java android udp

我正在使用以下代码发送DatagramPacket到给定地址:

InetAddress address = InetAddress.getByName(anIPAddress);

DatagramSocket socket = new DatagramSocket();
DatagramPacket packet = new DatagramPacket(packetBytes, packetBytes.length,
    address, port);

socket.send(packet);
socket.close();
Run Code Online (Sandbox Code Playgroud)

它工作正常,但是Exception当没有可用的互联网连接时,为什么这个代码不会抛出任何东西?

我关闭了Wi-Fi和移动数据,这些代码仍然可以执行而没有任何错误.

有没有办法确保实际发送数据包?

(我不在乎它是否到达目的地,我只想确保它被发送)

krz*_*dyn 1

您可以使用NetworkInterface.getNetworkInterfaces();它来检查哪些接口可用。然后您可以使用 进行检查ni.isUp()

Enumeration<NetworkInterface> nets=NetworkInterface.getNetworkInterfaces();
for(int i=0; nets.hasMoreElements(); ++i) {
    NetworkInterface ni=nets.nextElement();
    if (ni.isUp() && !ni.getName().equals("lo")) {
        //ni is not local
        break;
    }
}
Run Code Online (Sandbox Code Playgroud)