public static FastCgiNetworkConnector GetConnector(uint listenerTag)
        {
            FastCgiNetworkConnector connector = null;

            lock (connectorsLock) {
                connectors.TryGetValue(listenerTag, out connector);
            }

            return(connector);
        }
        public void acceptCallback(IAsyncResult ar)
        {
            GeneralSocket listener = (GeneralSocket)ar.AsyncState;
            Socket        client   = null;

            try {
                client = listener.EndAccept(ar);
            }
            catch (ObjectDisposedException) {
                //socket has been closed in Shutdown method
            }

            if (client != null)
            {
                listener.BeginAccept(accept, listener);

                // Additional code to read data goes here.
                FastCgiNetworkConnector connector = new FastCgiNetworkConnector(client, this);
                connector.Disconnected += OnDisconnect;

                connector.Receive();
            }
        }
		public void acceptCallback (IAsyncResult ar)
		{
			GeneralSocket listener = (GeneralSocket)ar.AsyncState;
			Socket client=null;

			try {
				client = listener.EndAccept (ar);
			}
			catch (ObjectDisposedException) {
				//socket has been closed in Shutdown method
			}

			if (client != null) {
				listener.BeginAccept (accept, listener);

				// Additional code to read data goes here.
				FastCgiNetworkConnector connector = new FastCgiNetworkConnector (client, this);
				connector.UseThreadPool = useThreadPool;
				connector.Disconnected += OnDisconnect;

				connector.Receive ();
			}
		}
 public void Shutdown()
 {
     listener.Close();
     FastCgiNetworkConnector.ShutdownAll();
 }
        protected void OnDisconnect(object sender, EventArgs args)
        {
            FastCgiNetworkConnector connector = sender as FastCgiNetworkConnector;

            connector.Dispose();
        }