using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Net.Sockets; using System.Net; using System.Windows.Forms; namespace NetOpenVpnGui { class Runner { private UdpClient net_send; private IPEndPoint net_send_port; private UdpClient net_gets; private IPEndPoint net_gets_port; public Runner(String p) { this.service = p; this.net_send = new UdpClient(); this.net_send_port = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 34523); this.net_gets = new UdpClient(34524); this.net_gets_port = new IPEndPoint(IPAddress.Loopback, 0); } public bool run_service() { byte[] data = Encoding.UTF8.GetBytes("service start " + this.service); this.net_send.Send(data, data.Length, this.net_send_port); bool ret = Boolean.Parse(Encoding.UTF8.GetString(net_gets.Receive(ref net_gets_port))); if (ret) return true; return false; } public bool stop_service() { byte[] data = Encoding.UTF8.GetBytes("service stop " + this.service); this.net_send.Send(data, data.Length, this.net_send_port); bool ret = Boolean.Parse(Encoding.UTF8.GetString(net_gets.Receive(ref net_gets_port))); if (ret) return true; return false; } public bool check_service() { byte[] data = Encoding.UTF8.GetBytes("service status " + this.service); this.net_send.Send(data, data.Length, this.net_send_port); bool ret = Boolean.Parse(Encoding.UTF8.GetString(net_gets.Receive(ref net_gets_port))); if (ret) return true; return false; } public string service { get; set; } } }