private async void EndGetRequest(HttpListenerContext context, System.Net.Http.HttpListener listener)
        {
            try
            {
                using (context.Response)
                    HandleRequest(context);
            }
            catch (Exception ex)
            {
                Console.Write("Exception in listener: {0}{1}", Environment.NewLine, ex);
            }
            finally
            {
                try
                {
                    if (listener.IsListening)
                    {
                        context = await listener.GetContextAsync();

                        EndGetRequest(context, listener);
                    }
                }
                catch
                {
                    Stop();
                }
            }
        }
        /// <summary>
        /// Starts listening for incoming connections
        /// </summary>
        public async override void Start()
        {
            if (Running)
            {
                return;
            }

#if NETSTANDARD1_5
            listener = new System.Net.Http.HttpListener(address, port);
            listener.Start();
            var context = await listener.GetContextAsync();

            EndGetRequest(context, listener);
#else
            listener = new System.Net.HttpListener();
            listener.Prefixes.Add(prefix);
            listener.Start();
            listener.BeginGetContext(EndGetRequest, listener);
#endif
        }