// SendSyncTestAsync public static async Task <string[]> SendSyncTestAsync(string macAddress, int port, int count, int interval) { // ARRANGE var this_MethodName = $"{nameof(MagicPacketTests)}.{nameof(MagicPacketTests.SendSyncTestAsync)}"; var act_MethodName = $"{nameof(MagicPacket)}.{nameof(MagicPacket.SendAsync)}"; // OUTPUT: START Console.WriteLine($"[{DateTime.Now:HH:mm:ss.fff}] {this_MethodName}: START"); // OUTPUT: Before Call Console.WriteLine($"[{DateTime.Now:HH:mm:ss.fff}] {this_MethodName}() --> {act_MethodName}()"); // ACT var task = await MagicPacket.SendAsync(macAddress, port, count, interval); // OUTPUT: Returned Console.WriteLine($"[{DateTime.Now:HH:mm:ss.fff}] {this_MethodName}() <-- {act_MethodName}()"); // OUTPUT: END Console.WriteLine($"[{DateTime.Now:HH:mm:ss.fff}] {this_MethodName}: END"); // RETURN return(task); }
public async Task SendAsyncMacAddressInvalidFormatTest(string macAddress) { try { // ACT & ASSERT await MagicPacket.SendAsync(macAddress); } catch (Exception) { throw; } }
private void ShutdownToolStripMenuItem_Click(object sender, EventArgs e) { ToolStripMenuItem menuItem = (ToolStripMenuItem)sender; String msg = String.Empty; FavoriteConfigurationElement fav = this.TreeView.SelectedFavorite; if (fav != null) { MagicPacket.ShutdownCommands shutdownStyle; if (menuItem.Equals(this.shutdownToolStripMenuItem)) { msg = String.Format("Are you sure you want to shutdown this machine: {0}", fav.ServerName); shutdownStyle = MagicPacket.ShutdownCommands.ForcedShutdown; } else if (menuItem.Equals(this.rebootToolStripMenuItem)) { msg = String.Format("Are you sure you want to reboot this machine: {0}", fav.ServerName); shutdownStyle = MagicPacket.ShutdownCommands.ForcedReboot; } else { return; } if (MessageBox.Show(msg, "Confirmation", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.Yes) { try { if (MagicPacket.ForceShutdown(fav.ServerName, shutdownStyle, fav.Credential) == 0) { MessageBox.Show(AssemblyInfo.Title + " successfully sent the shutdown command."); return; } } catch (ManagementException ex) { Log.Info(ex.ToString(), ex); MessageBox.Show("Terminals was not able to shutdown the machine remotely.\r\nPlease check the log file."); } catch (UnauthorizedAccessException) { MessageBox.Show("Terminals was not able to shutdown the machine remotely.\r\n\r\nAccess is Denied."); return; } } } else { MessageBox.Show("Terminals was not able to shutdown the machine remotely."); } }
private void SendButton_Click(object sender, EventArgs e) { try { MagicPacket wakeUpPacket = new MagicPacket(this.MACTextbox.Text); int byteSend = wakeUpPacket.WakeUp(); this.ResultsLabel.Text = string.Format("{0} bytes sent to {1}", byteSend, wakeUpPacket.macAddress); } catch (Exception exc) { Logging.Info("Error sending Magic Packet", exc); MessageBox.Show("There was an error sending the Magic Packet" + exc.Message); } }
public static void WakeFunction(string macAddress, string ipAddress) { //set sending bites //buffer to be send MagicPacket magicPacket = CreateMagicPacket(macAddress); IPAddress address = IpAddressHelper.Ipv4AddressFromString(ipAddress); UdpClient client = new UdpClient(); client.EnableBroadcast = true; client.Connect(address, 12287); //now send wake up packet int reterned_value = client.Send(magicPacket.PacketBytes, magicPacket.PacketLength); }
public void SendTest(string macAddress, int port, int count, int interval) { // ARRANGE var expected = count == 0 ? 0 : MagicPacketTests.GetNumberOfNetworkInterfaces(); // ACT: Send Magic Packet var sent = (port < 0 && count < 0 && interval < 0) ? MagicPacket.Send(macAddress) : MagicPacket.Send(macAddress, port, count, interval); // OUTPUT for (int i = 0; i < sent?.Length; i++) { Debug.WriteLine($"Source IP Address[{i}] = {sent[i]}"); } // ASSERT Assert.AreEqual(expected, sent.Length); }
private static MagicPacket CreateMagicPacket(string MAC_ADDRESS) { MagicPacket magicPacket = new MagicPacket(new byte[1024]); int counter = 0; for (int y = 0; y < 6; y++) { magicPacket.PacketBytes[counter++] = 0xFF; } //now repeate MAC 16 times for (int y = 0; y < 16; y++) { int i = 0; for (int z = 0; z < 6; z++) { magicPacket.PacketBytes[counter++] = byte.Parse(MAC_ADDRESS.Substring(i, 2), NumberStyles.HexNumber); i += 2; } } return(magicPacket); }
public void SendMacAddressInvalidFormatTest(string macAddress) { // ACT & ASSERT MagicPacket.Send(macAddress); }
public void WolTest() => MagicPacket.Send("E4:11:5B:AD:32:38", count: 3, interval: 1000);
public void SendSyncTest(bool async) { // ARRANGE var this_MethodName = $"{nameof(MagicPacketTests)}.{nameof(MagicPacketTests.SendSyncTest)}"; var act_MethodName = async ? $"{nameof(MagicPacketTests)}.{nameof(MagicPacketTests.SendSyncTestAsync)}" : $"{nameof(MagicPacket)}.{nameof(MagicPacket.Send)}"; var macAddress = "01:23:45:AB:CD:EF"; var port = 9; var count = 2; var interval = 1000; var error = 100; var expected_count = MagicPacketTests.GetNumberOfNetworkInterfaces(); var expected_timespan = TimeSpan.FromMilliseconds(interval * (count - 1) * MagicPacketTests.GetNumberOfNetworkInterfaces()); string[] sent = null; Task <string[]> task = null; // OUTPUT: START Console.WriteLine($"[{DateTime.Now:HH:mm:ss.fff}] {this_MethodName}: START"); // OUTPUT: Before Call Console.WriteLine($"[{DateTime.Now:HH:mm:ss.fff}] {this_MethodName}() --> {act_MethodName}()"); Console.WriteLine(); // GET Start Time var start_time = DateTime.Now; // ACT if (!async) { // NOT Async sent = MagicPacket.Send(macAddress, port, count, interval); } else { // Async task = async ? SendSyncTestAsync(macAddress, port, count, interval) : null; } // GET Timespan var time = DateTime.Now - start_time; // OUTPUT: Returned Console.WriteLine(); Console.WriteLine($"[{DateTime.Now:HH:mm:ss.fff}] {this_MethodName}() <-- {act_MethodName}()"); // Wait for complete (Async) if (async) { // OUTPUT: Before Wait for Complete Console.WriteLine($"[{DateTime.Now:HH:mm:ss.fff}] {this_MethodName}: Wait for Complete {act_MethodName}()"); Console.WriteLine("-----"); Console.WriteLine(); // Wait for complete (Async) task.Wait(); // OUTPUT: After Wait for Complete Console.WriteLine(); Console.WriteLine("-----"); Console.WriteLine($"[{DateTime.Now:HH:mm:ss.fff}] {this_MethodName}: {act_MethodName}() is completed."); } // OUTPUT: END (before Assertion) Console.WriteLine($"[{DateTime.Now:HH:mm:ss.fff}] {this_MethodName}: END (Count = {expected_count}, Timespan = {time.TotalMilliseconds})"); // ASSERT (Count) Assert.AreEqual(expected_count, !async ? sent.Length : task.Result.Length); // ASSERT (Timespan) if (!async) { // NOT Async Assert.IsTrue((time > (expected_timespan - TimeSpan.FromMilliseconds(error))) && (time < (expected_timespan + TimeSpan.FromMilliseconds(error)))); } else { // Async Assert.IsTrue(time < TimeSpan.FromMilliseconds(error)); } }