コード例 #1
0
 public FastcgiRequest(FastcgiHandler FastcgiHandler, ushort RequestId)
 {
     this.FastcgiHandler = FastcgiHandler;
     this.RequestId      = RequestId;
     this.ParamsStream   = new FascgiRequestInputStream();
     this.StdinStream    = new FascgiRequestInputStream();
     this.StdoutStream   = new FascgiResponseOutputStream(this, Fastcgi.PacketType.FCGI_STDOUT);
     this.StderrStream   = new FascgiResponseOutputStream(this, Fastcgi.PacketType.FCGI_STDERR);
 }
コード例 #2
0
 public FastcgiRequest(FastcgiHandler FastcgiHandler, ushort RequestId)
 {
     this.FastcgiHandler = FastcgiHandler;
     this.RequestId = RequestId;
     this.ParamsStream = new FascgiRequestInputStream();
     this.StdinStream = new FascgiRequestInputStream();
     this.StdoutStream = new FascgiResponseOutputStream(this, Fastcgi.PacketType.FCGI_STDOUT);
     this.StderrStream = new FascgiResponseOutputStream(this, Fastcgi.PacketType.FCGI_STDERR);
 }
コード例 #3
0
        /*
         * class ConnectionState
         * {
         *      public AsyncCallback ReadAsyncCallback;
         *      public Socket ClientSocket;
         *      public const int DataSize = 1024;
         *      public byte[] Data = new byte[DataSize];
         *      public ProduceConsumeBuffer<byte> Buffer = new ProduceConsumeBuffer<byte>();
         *
         *      public ConnectionState(Socket ClientSocket, AsyncCallback ReadAsyncCallback)
         *      {
         *              this.ClientSocket = ClientSocket;
         *              this.ReadAsyncCallback = ReadAsyncCallback;
         *      }
         *
         *      public void BeginReceive()
         *      {
         *              ClientSocket.BeginReceive(Data, 0, DataSize, 0, ReadAsyncCallback, this);
         *      }
         * }
         *
         * void HandleAcceptedCallbackAsync(IAsyncResult AsyncResult) {
         *      Socket ClientSocket = TcpListener.EndAcceptSocket(AsyncResult);
         *
         *      AcceptMutex.Set();
         *
         *      var ConnectionState = new ConnectionState(ClientSocket, new AsyncCallback(HandleReadCallbackAsync));
         *      ConnectionState.BeginReceive();
         *
         *      Console.WriteLine("HandleAcceptedCallbackAsync");
         * }
         *
         * void HandleReadCallbackAsync(IAsyncResult AsyncResult)
         * {
         *      ConnectionState ConnectionState = (ConnectionState)AsyncResult.AsyncState;
         *      Socket ClientSocket = ConnectionState.ClientSocket;
         *      int ReadedCount = ClientSocket.EndReceive(AsyncResult);
         *
         *      Console.WriteLine("HandleReadCallbackAsync");
         *
         *      if (ReadedCount > 0)
         *      {
         *              ConnectionState.Buffer.Produce(ConnectionState.Data, 0, ReadedCount);
         *              Console.WriteLine(ConnectionState.Buffer.ConsumeRemaining);
         *              ConnectionState.BeginReceive();
         *      }
         *      else
         *      {
         *              ClientSocket.Close();
         *      }
         * }
         */

        protected void HandleAcceptedSocket(Object _Socket)
        {
            var Socket = (Socket)_Socket;

            if (Debug)
            {
                Console.WriteLine("HandleAcceptedSocket: " + Socket);
            }
            //Console.Write(".");
            var FastcgiHandler = new FastcgiHandler(new FastcgiPipeSocket(Socket), Debug);

            FastcgiHandler.HandleFastcgiRequest += HandleFascgiRequest;
            FastcgiHandler.Reader.ReadAllPackets();
        }
コード例 #4
0
		public void FastcgiHandlerConstructorTest()
		{
			var ConsumerMemoryStream = new ConsumerMemoryStream();
			WriteBeginRequest(ConsumerMemoryStream);

			var FastcgiHandler = new FastcgiHandler(new FastcgiPipeStream(ConsumerMemoryStream));
			FastcgiHandler.Reader.HandlePacket += delegate(Fastcgi.PacketType Type, ushort RequestId, byte[] Content)
			{
				Assert.AreEqual(Type, Fastcgi.PacketType.FCGI_BEGIN_REQUEST);
				Assert.AreEqual(RequestId, 1);
				Console.WriteLine(Content.Implode(","));
				CollectionAssert.AreEqual(Content, new byte[] { 1, 2, 3, 4, 5, 6, 7, 8 });

				return true;
			};
			FastcgiHandler.Reader.ReadPacket();
		}
コード例 #5
0
ファイル: FastcgiServer.cs プロジェクト: yash0924/csharputils
        /*
        class ConnectionState
        {
            public AsyncCallback ReadAsyncCallback;
            public Socket ClientSocket;
            public const int DataSize = 1024;
            public byte[] Data = new byte[DataSize];
            public ProduceConsumeBuffer<byte> Buffer = new ProduceConsumeBuffer<byte>();

            public ConnectionState(Socket ClientSocket, AsyncCallback ReadAsyncCallback)
            {
                this.ClientSocket = ClientSocket;
                this.ReadAsyncCallback = ReadAsyncCallback;
            }

            public void BeginReceive()
            {
                ClientSocket.BeginReceive(Data, 0, DataSize, 0, ReadAsyncCallback, this);
            }
        }

        void HandleAcceptedCallbackAsync(IAsyncResult AsyncResult) {
            Socket ClientSocket = TcpListener.EndAcceptSocket(AsyncResult);

            AcceptMutex.Set();

            var ConnectionState = new ConnectionState(ClientSocket, new AsyncCallback(HandleReadCallbackAsync));
            ConnectionState.BeginReceive();

            Console.WriteLine("HandleAcceptedCallbackAsync");
        }

        void HandleReadCallbackAsync(IAsyncResult AsyncResult)
        {
            ConnectionState ConnectionState = (ConnectionState)AsyncResult.AsyncState;
            Socket ClientSocket = ConnectionState.ClientSocket;
            int ReadedCount = ClientSocket.EndReceive(AsyncResult);

            Console.WriteLine("HandleReadCallbackAsync");

            if (ReadedCount > 0)
            {
                ConnectionState.Buffer.Produce(ConnectionState.Data, 0, ReadedCount);
                Console.WriteLine(ConnectionState.Buffer.ConsumeRemaining);
                ConnectionState.BeginReceive();
            }
            else
            {
                ClientSocket.Close();
            }
        }
        */
        protected void HandleAcceptedSocket(Object _Socket)
        {
            var Socket = (Socket)_Socket;
            if (Debug)
            {
                Console.WriteLine("HandleAcceptedSocket: " + Socket);
            }
            //Console.Write(".");
            var FastcgiHandler = new FastcgiHandler(new FastcgiPipeSocket(Socket), Debug);
            FastcgiHandler.HandleFastcgiRequest += HandleFascgiRequest;
            FastcgiHandler.Reader.ReadAllPackets();
        }