我正在使用以下代码发送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和移动数据,这些代码仍然可以执行而没有任何错误.
有没有办法确保实际发送数据包?
(我不在乎它是否到达目的地,我只想确保它被发送)
您可以使用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)
| 归档时间: |
|
| 查看次数: |
342 次 |
| 最近记录: |