public void Run() { using (var stream = _socket.GetStream()) { var reader = new StreamReader(stream); var writer = new BinaryWriter(stream); var request = _parser.Parse(reader); var handler = _router.Route(request); var response = handler.Handle(request); response.Send(writer); } _socket.Close(); }