123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- using System;
- using System.Net;
- using System.Net.Sockets;
- using System.Text;
- using Comal.Classes;
- using InABox.Clients;
- using InABox.Core;
- using PRSServices;
- namespace PRSServer;
- internal class AutoDiscoveryEngine : Engine<AutoDiscoveryServerProperties>
- {
- public override void Run()
- {
- var settings = new AutoDiscoverySettings();
- settings.Name = Properties.DisplayName;
- var urls = Properties.ServerURLs;
- if (String.IsNullOrWhiteSpace(urls))
- {
- var url = CoreUtils.GetPropertyValue(Properties, "ServerURL") as String;
- var port = CoreUtils.GetPropertyValue(Properties, "ServerPort");
- urls = !String.IsNullOrWhiteSpace(url) ? $"{url}:{port}" : "";
- }
- settings.URLs = urls.Split(';');
- settings.Protocol = Properties.Protocol;
- settings.LibraryLocation = Properties.LibraryLocation;
- settings.GoogleAPIKey = Properties.GoogleAPIKey;
- var responseData = Encoding.ASCII.GetBytes(Serialization.Serialize(settings));
- while (true)
- {
- var server = new UdpClient(8888);
- var clientEp = new IPEndPoint(IPAddress.Any, 0);
- var clientRequestData = server.Receive(ref clientEp);
- Logger.Send(LogType.Information, "", string.Format("Processing Request from {0}", clientEp));
- server.Send(responseData, responseData.Length, clientEp);
- Logger.Send(LogType.Information, "", string.Format("- Sending: {0} bytes", responseData.Length));
- server.Close();
- Logger.Send(LogType.Information, "", "- Closed");
- }
- }
- public override void Stop()
- {
- }
- }
|