我编写了这段代码来实现网络唤醒:
InetAddress address = InetAddress.getByAddress(
new byte[]{(byte)0xff,(byte)0xff,(byte)0xff,(byte)0xff});
DatagramPacket packet = new DatagramPacket(bytes, bytes.length, address, 7);
socket.send(packet);
但我明白了:
java.io.IOException: Permission denied
at gnu.java.nio.VMChannel.send(Native Method)
at gnu.java.nio.VMChannel.send(VMChannel.java:308)
at gnu.java.net.PlainDatagramSocketImpl.send(PlainDatagramSocketImpl.java:261)
at java.net.DatagramSocket.send(DatagramSocket.java:659)
at com.MyApp.wakeonlan(MyApp.java:685)
问题似乎是广播地址,因为如果我更改为任何其他地址,它不会给出此错误。我怎样才能避免呢?我正在使用带有 JamVM 和 GNU Classpath 的 linux busybox。