UdpServerEntryPoint.cs 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. using MediaBrowser.Common.Net;
  2. using MediaBrowser.Controller.Configuration;
  3. using MediaBrowser.Controller.Plugins;
  4. using MediaBrowser.Model.Logging;
  5. using MediaBrowser.Server.Implementations.Udp;
  6. using System.Net.Sockets;
  7. namespace MediaBrowser.ServerApplication.EntryPoints
  8. {
  9. public class UdpServerEntryPoint : IServerEntryPoint
  10. {
  11. /// <summary>
  12. /// Gets or sets the UDP server.
  13. /// </summary>
  14. /// <value>The UDP server.</value>
  15. private UdpServer UdpServer { get; set; }
  16. private readonly ILogger _logger;
  17. private readonly INetworkManager _networkManager;
  18. private readonly IServerConfigurationManager _serverConfigurationManager;
  19. public UdpServerEntryPoint(ILogger logger, INetworkManager networkManager, IServerConfigurationManager serverConfigurationManager)
  20. {
  21. _logger = logger;
  22. _networkManager = networkManager;
  23. _serverConfigurationManager = serverConfigurationManager;
  24. }
  25. public void Run()
  26. {
  27. var udpServer = new UdpServer(_logger, _networkManager, _serverConfigurationManager);
  28. try
  29. {
  30. udpServer.Start(ApplicationHost.UdpServerPort);
  31. UdpServer = udpServer;
  32. }
  33. catch (SocketException ex)
  34. {
  35. _logger.ErrorException("Failed to start UDP Server", ex);
  36. }
  37. }
  38. public void Dispose()
  39. {
  40. Dispose(true);
  41. }
  42. protected virtual void Dispose(bool dispose)
  43. {
  44. if (dispose)
  45. {
  46. if (UdpServer != null)
  47. {
  48. UdpServer.Dispose();
  49. }
  50. }
  51. }
  52. }
  53. }