Beispiel #1
0
		public Request(byte[] header, ClientRequestBody body, Socket client)
		{
			_getArguments = new Hashtable();
			_headers = ProcessHeader(header);
			_body = body;
			_client = client;
		}
Beispiel #2
0
 public Request(byte[] header, ClientRequestBody body, Socket client)
 {
     _getArguments = new Hashtable();
     _headers      = ProcessHeader(header);
     _body         = body;
     _client       = client;
 }
		public ApiReadBodyWrapper(ClientRequestBody body)
		{
			_body = body;
		}
        private void WaitForNetworkRequest()
        {
            while (ServerShouldBeUp)
            {
                _running = true;
                try
                {
                    using (var clientSocket = _listeningSocket.Accept())
                    {
                        var availableBytes = AwaitAvailableBytes(clientSocket, Settings.MAX_HEADER_SIZE);
                        if (availableBytes <= 0)
                            continue;

                        var headerBody = ReadAndBreakApart(clientSocket, availableBytes);
                        var longBody = new ClientRequestBody(headerBody.Body, clientSocket);

                        using (var request = new Request(headerBody.Header, longBody, clientSocket))
                        {
                            _logger.Debug(" * Client connected / URL: " + request.Url + " / Initial byte count: " +
                                          availableBytes);
                            SendResponse(request);
                        }

                        try
                        {
                            clientSocket.Close();
                        }
                        catch (Exception ex)
                        {
                            _logger.Debug(ex.ToString());
                        }

                        _logger.Debug(" * Request finished");
                        _garbage.Collect();
                    }
                }
                catch (SocketException ex)
                {
                    if (ServerShouldBeUp)
                        _logger.Debug(ex.Message);
                }
                catch (Exception ex)
                {
                    _logger.Debug(ex.Message);
                }
            }
            _logger.Debug("Web server has exited");
            _running = false;
        }