using MediaBrowser.Common.Net; using MediaBrowser.Controller; using MediaBrowser.Controller.Plugins; using MediaBrowser.Model.Logging; using MediaBrowser.Model.Serialization; using MediaBrowser.Server.Implementations.Udp; using System.Net.Sockets; namespace MediaBrowser.Server.Implementations.EntryPoints { /// /// Class UdpServerEntryPoint /// public class UdpServerEntryPoint : IServerEntryPoint { /// /// Gets or sets the UDP server. /// /// The UDP server. private UdpServer UdpServer { get; set; } /// /// The _logger /// private readonly ILogger _logger; /// /// The _network manager /// private readonly INetworkManager _networkManager; private readonly IServerApplicationHost _appHost; private readonly IJsonSerializer _json; public const int PortNumber = 7359; /// /// Initializes a new instance of the class. /// /// The logger. /// The network manager. /// The application host. /// The json. public UdpServerEntryPoint(ILogger logger, INetworkManager networkManager, IServerApplicationHost appHost, IJsonSerializer json) { _logger = logger; _networkManager = networkManager; _appHost = appHost; _json = json; } /// /// Runs this instance. /// public void Run() { var udpServer = new UdpServer(_logger, _networkManager, _appHost, _json); try { udpServer.Start(PortNumber); UdpServer = udpServer; } catch (SocketException ex) { _logger.ErrorException("Failed to start UDP Server", ex); } } /// /// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. /// public void Dispose() { Dispose(true); } /// /// Releases unmanaged and - optionally - managed resources. /// /// true to release both managed and unmanaged resources; false to release only unmanaged resources. protected virtual void Dispose(bool dispose) { if (dispose) { if (UdpServer != null) { UdpServer.Dispose(); } } } } }