Esempio n. 1
0
        TelnetConnectAndNegotiate(
            string Host, NegotiateSettings NegotiateSettings,
            ConcurrentMessageQueue TelnetQueue, ToThread ToThread)
        {
            var           sessionSettings = new SessionSettings();
            TelnetLogList logList         = null;
            bool          breakLoop       = false;

            // loop reading from NetworkStream and processing the telnet command.
            // loop until break flag is set.
            while (breakLoop == false)
            {
                var item = TelnetQueue.WaitAndPeek();
                if ((item is TelnetCommand) == false)
                {
                    break;
                }
                var telCmd = TelnetQueue.WaitAndDequeue() as TelnetCommand;

                byte[] responseBytes = null;
                {
                    var rv = ProcessTelnetCommand(telCmd, NegotiateSettings);
                    var cx = rv.Item1;
                    responseBytes = rv.Item2;
                }

                if ((responseBytes != null) && (responseBytes.Length > 0))
                {
                    var dataMessage = new SendDataMessage(responseBytes);
                    ToThread.PostInputMessage(dataMessage);
                }
            }
            return(new Tuple <SessionSettings, TelnetLogList>(
                       sessionSettings, logList));
        }
Esempio n. 2
0
        TelnetPrinterConnectAndNegotiate(
            string Host, NegotiateSettings NegotiateSettings,
            ConcurrentMessageQueue TelnetQueue,
            ServerConnectPack ConnectPack, bool doLog = false)
        {
            var           sessionSettings = new SessionSettings();
            TelnetLogList logList         = null;

            // BgnTemp
            doLog = true;
            // EndTemp

            if (doLog == true)
            {
                logList = new TelnetLogList();
            }
            bool breakLoop = false;

            // loop reading from NetworkStream and processing the telnet command.
            // loop until break flag is set.
            while (breakLoop == false)
            {
                var item = TelnetQueue.WaitAndPeek();
                if ((item is TelnetCommand) == false)
                {
                    break;
                }
                var telCmd = TelnetQueue.WaitAndDequeue() as TelnetCommand;

                byte[] responseBytes = null;
                {
                    var rv = ProcessTelnetCommand(telCmd, NegotiateSettings, doLog);
                    var cx = rv.Item1;
                    responseBytes = rv.Item2;
                    if (doLog == true)
                    {
                        logList.AddItems(rv.Item3);
                    }
                }

                if ((responseBytes != null) && (responseBytes.Length > 0))
                {
                    WriteToHost(logList, responseBytes, ConnectPack.TcpClient.GetStream());
                }
            }
            return(new Tuple <SessionSettings, TelnetLogList>(
                       sessionSettings, logList));
        }