Esempio n. 1
0
        /// <summary>
        /// Ein neuer Kommand ist über eine Kommunikationsschnittstelle angekommen
        /// kümmern wir uns darum!
        /// </summary>
        /// <param name="client"></param>
        /// <param name="Command"></param>
        public virtual void CommandRecieved(System.Net.Sockets.TcpClient client, Commands.BaseCommand recievedCommand)
        {
            Console.WriteLine(recievedCommand.GetType().ToString());
            try{
            if (recievedCommand.completed)
            {
                recievedCommand.ProcessResults(this);
                if (!recievedCommand.isAsync)
                {
                    lock (SynclockCommands)
                    {
                        SyncCommands.Add(recievedCommand.guid, recievedCommand);
                    }
                }
            }
            else
            {
                    Console.WriteLine("RemoteExec");
                recievedCommand.RemoteExecute(this);
                recievedCommand.completed = true;
                BinaryFormatter formatter = new BinaryFormatter();
                    MemoryStream memstr = new MemoryStream();
                formatter.Serialize(memstr, recievedCommand);
                    var outputstream = client.GetStream();
                        outputstream.Write(memstr.ToArray(),0,Convert.ToInt32(memstr.Length));
                    outputstream.Flush();

            }
            }catch (Exception ex){
                Console.WriteLine(ex.Message+ " "+ ex.StackTrace.ToString());

            }
        }