コード例 #1
0
 protected void EndRequest(Request request, bool disconnect)
 {
     _requestTimer.Stop();
     _log.DebugFormat("[{0}] Completed request for [{1}.{2}] in {4:0.00}ms",
                      _commandCounter,
                      request.service_name,
                      request.method_name,
                      request.request_proto.Length,
                      _requestTimer.Elapsed.TotalMilliseconds
                      );
     _requestTimer.Reset();
     if (disconnect)
     {
         Dispose();
     }
     else
     {
         StartCommandRequest();
     }
 }
コード例 #2
0
        private void OnAccept(IAsyncResult result)
        {
            BeginWaitForConnection();
            Socket socket;

            try {
                socket = _listenSocket.EndAccept(result);
                _log.DebugFormat("Accepted client from {0}", socket.RemoteEndPoint);
            } catch (SocketException e) {
                _log.Error("Socket error on receive, shutting down server", e);
                return;
            } catch (ObjectDisposedException e) {
                _log.Debug("Server already disposed, abort listen");
                return;
            }
            var handler = _clientHandlerFactory.Create(socket, RemoveHandler);

            lock (_openConnections) {
                _openConnections.Add(handler);
            }
            handler.ProcessRequests();
        }