Ejemplo n.º 1
0
 private void RunChannel(TcpClient client)
 {
     try
     {
         var layer   = new TcpLayer(client);
         var channel = _channelFactory.CreateChannel(layer);
         channel.RequestEnded += (sender, e) => {
             if (!((Request)sender).RequestBody.KeepConnection)
             {
                 layer.Close();
             }
         };
         layer.UpperLayer = channel;
         layer.Run();
     }
     catch (Exception ex)
     {
         this.OnChannelError(new UnhandledExceptionEventArgs(ex, false));
     }
 }
Ejemplo n.º 2
0
        private void Run()
        {
            try
            {
                this.UpperLayer = _channelFactory.CreateChannel(this);

                int read = 0;

                while (_running && read >= 0)
                {
                    read = _server.Read(_recvBuffer, 0, _recvBuffer.Length);
                    if (read > 0)
                    {
                        this.UpperLayer.Receive(new ByteArray(_recvBuffer, (int)read));
                    }
                }
            }
            finally
            {
                _server.Close();
            }
        }