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)); } }
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(); } }