AutoDiscoveryEngine.cs 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. using System.Net;
  2. using System.Net.Sockets;
  3. using System.Text;
  4. using Comal.Classes;
  5. using InABox.Clients;
  6. using InABox.Core;
  7. namespace PRSServer
  8. {
  9. internal class AutoDiscoveryEngine : Engine<AutoDiscoveryServerProperties>
  10. {
  11. public override void Run()
  12. {
  13. var settings = new AutoDiscoverySettings();
  14. settings.Name = Properties.DisplayName;
  15. settings.URL = Properties.ServerURL;
  16. settings.Port = Properties.ServerPort;
  17. settings.Protocol = SerializerProtocol.Rest;
  18. settings.LibraryLocation = Properties.LibraryLocation;
  19. settings.GoogleAPIKey = Properties.GoogleAPIKey;
  20. var responseData = Encoding.ASCII.GetBytes(Serialization.Serialize(settings));
  21. while (true)
  22. {
  23. var server = new UdpClient(8888);
  24. var clientEp = new IPEndPoint(IPAddress.Any, 0);
  25. var clientRequestData = server.Receive(ref clientEp);
  26. Logger.Send(LogType.Information, "", string.Format("Processing Request from {0}", clientEp));
  27. //var clientRequest = Encoding.ASCII.GetString(clientRequestData);
  28. //Logger.Send(LogType.Information, "", String.Format("- Request: {0}", clientRequest));
  29. server.Send(responseData, responseData.Length, clientEp);
  30. Logger.Send(LogType.Information, "", string.Format("- Sending: {0} bytes", responseData.Length));
  31. server.Close();
  32. Logger.Send(LogType.Information, "", "- Closed");
  33. }
  34. }
  35. public override void Stop()
  36. {
  37. }
  38. }
  39. }