using Microsoft.Extensions.Logging; using System; using System.Net.Sockets; namespace NetworkResurrector.WakeOnLan.Inhouse { internal class WolClient : UdpClient { private readonly ILogger _logger; /// /// Initializes a new instance of . /// public WolClient(ILogger logger) : base() { _logger = logger; } /// /// Sets up the UDP client to broadcast packets. /// /// if the UDP client is set in /// broadcast mode. public bool SetClientInBrodcastMode() { bool broadcast = false; if (this.Active) { try { this.Client.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Broadcast, 0); _logger.LogInformation("WolClient => SetClientInBrodcastMode succedded."); broadcast = true; } catch (Exception ex) { broadcast = false; _logger.LogError("WolClient => SetClientInBrodcastMode failed.", ex); } } return broadcast; } } }