public NanoClient(string address, int tcpPort, int udpPort, Guid sessionId)
 {
     _transport = new NanoRdpTransport(address, tcpPort, udpPort);
     _transport.MessageReceived += MessageReceived;
     _channelManager             = new Channels.ChannelManager(this);
     _consumers           = new List <Consumer.IConsumer>();
     _provider            = null;
     ControlHandshakeDone = false;
     SessionId            = sessionId;
     ConnectionId         = (ushort)new Random().Next(5000);
 }
        /// <summary>
        /// Initialize an instance of NanoClient
        /// </summary>
        /// <param name="address">Console IP address string</param>
        /// <param name="tcpPort">Nano TCP port</param>
        /// <param name="udpPort">Nano UDP port</param>
        /// <param name="configuration">GamestreamConfiguration sent via BroadcastChannel *unused atm*</param>
        /// <param name="sessionId">Session ID received on BroadcastChannel *unused atm*</param>
        public NanoClient(string address, int tcpPort, int udpPort,
                          GamestreamConfiguration configuration, Guid sessionId)
        {
            _transport = new NanoRdpTransport(address, tcpPort, udpPort);

            _consumers          = new List <Consumer.IConsumer>();
            ProtocolInitialized = false;
            StreamInitialized   = false;
            Configuration       = configuration;
            SessionId           = sessionId;
            ConnectionId        = (ushort)new Random().Next(5000);
        }