这是我过去使用的一些C#代码。转换成Java并使用DatagramPacket发送应该相对容易
namespace WakeOnLan{ class Program { static void Main(string[] args) { byte[] mac = new byte[] { mac address goes here i.e 0x00, and so on }; WakeUp(mac); } private static void WakeUp(byte[] mac) { // // WOL packet is sent over UDP 255.255.255.0:40000. // Console.WriteLine("Waking Up......."); UdpClient client = new UdpClient(); client.Connect(IPAddress.Broadcast, 40000); // // WOL packet contains a 6-bytes trailer and 16 times a 6-bytes sequence containing the MAC address. // byte[] packet = new byte[17 * 6]; // // Trailer of 6 times 0xFF. // for (int i = 0; i < 6; i++) packet[i] = 0xFF; // // Body of magic packet contains 16 times the MAC address. // for (int i = 1; i <= 16; i++) for (int j = 0; j < 6; j++) packet[i * 6 + j] = mac[j]; // // Submit WOL packet. // client.Send(packet, packet.Length); Console.WriteLine("Machine Woke Up...."); } }}
希望这可以帮助
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)