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