コード例 #1
0
ファイル: HttpListener.cs プロジェクト: meteorsnows/Roamit
        private async Task StartListenerAsync()
        {
            try
            {
                _tcpListener.Start();

                while (_isListening)
                {
                    // Await request.

                    var client = await _tcpListener.AcceptTcpClientAsync().ConfigureAwait(false);

                    var request = new HttpListenerRequest(client);

                    // Handle request in a separate thread.

                    Task.Run(async() =>
                    {
                        // Process request.

                        var response = new HttpListenerResponse(request, client);

                        try
                        {
                            await request.ProcessAsync();

                            response.Initialize();

                            if (Request == null)
                            {
                                // No Request handlers exist. Respond with "Not Found".

                                response.NotFound();
                                response.Close();
                            }
                            else
                            {
                                // Invoke Request handlers.

                                Request(this, new HttpListenerRequestEventArgs(request, response));
                            }
                        }
                        catch (Exception)
                        {
                            response.CloseSocket();
                        }
                    });
                }
            }
            catch (Exception ex)
            {
                Diagnostics.Debug.WriteLine($"Exception in HttpListener.StartListenerAsync: {ex.Message}");
                //throw;
            }
            finally
            {
                _isListening = false;
                _cts         = null;
            }
        }
コード例 #2
0
        private async Task StartListenerAsync()
        {
            try
            {
                _tcpListener.Start();

                while (_isListening)
                {
                    // Await request.
                    var client = await _tcpListener.AcceptTcpClientAsync().ConfigureAwait(false);

                    var request = new HttpListenerRequest(client);

                    // Handle request in a separate thread.
                    Task.Run(async() =>
                    {
                        // Process request.
                        var response = new HttpListenerResponse(request, client);

                        try
                        {
                            await request.ProcessAsync();

                            response.Initialize();

                            if (_handler == null)
                            {
                                // No Request handler exist. Respond with "Not Found".
                                response.NotFound();
                                response.Close();
                            }
                            else
                            {
                                // execute handler.
                                _handler.HandleContext(new HttpListenerContext(request, response));
                            }
                        }
                        catch (Exception)
                        {
                            response.CloseSocket();
                        }
                    });

                    testL++;
                }
            }
            finally
            {
                _isListening = false;
                _cts         = null;
            }
        }
コード例 #3
0
ファイル: HttpListener.cs プロジェクト: naice/Jens
        private async Task StartListenerAsync()
        {
            _tcpListener.Start();

            while (!_cancellationToken.IsCancellationRequested)
            {
                // Await request.
                var client = await _tcpListener.AcceptTcpClientAsync().ConfigureAwait(false);

                _cancellationToken.ThrowIfCancellationRequested();
                var request = new HttpListenerRequest(client, _cancellationToken);

                // Handle request in a separate thread.
                Task.Run(async() =>
                {
                    // Process request.
                    var response = new HttpListenerResponse(request, client);

                    try
                    {
                        await request.ProcessAsync();

                        response.Initialize();

                        _cancellationToken.ThrowIfCancellationRequested();

                        if (_handler == null)
                        {
                            // No Request handler exist. Respond with "Not Found".
                            response.NotFound();
                            response.Close();
                        }
                        else
                        {
                            // execute handler.
                            _handler.HandleContext(new HttpListenerContext(request, response), _cancellationToken);
                        }
                    }
                    catch (Exception)
                    {
                        response.CloseSocket();
                    }
                });
            }
        }
コード例 #4
0
        private async Task listener()
        {
            try
            {
#if NETCore
                _tcpListener.Start();
#endif
#if WINDOWS_UWP
                await _tcpListener.StartAsync();
#endif
                while (_isListening)
                {
                    // Await request.

                    var client = await _tcpListener.AcceptTcpClientAsync();

                    var request = new HttpListenerRequest(client);

                    // Handle request in a separate thread.

                    Task.Run(async() =>
                    {
                        // Process request.

                        var response = new HttpListenerResponse(request, client);

                        try
                        {
                            await request.ProcessAsync();

                            response.Initialize();

                            if (Request == null)
                            {
                                // No Request handlers exist. Respond with "Not Found".

                                response.NotFound();
                                response.Close();
                            }
                            else
                            {
                                // Invoke Request handlers.

                                Request(this, new HttpListenerRequestEventArgs(request, response));
                            }
                        }
                        catch (Exception)
                        {
                            response.CloseSocket();
                        }
                    });
                }
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                _isListening = false;
                _cts         = null;
            }
        }