public Form1() { InitializeComponent(); this.tbService.Text = "UDP"; this.tbIp.Text = "127.0.0.1"; this.tbPort.Text = "5002"; udpServer = new Udp_Server(); udpServer.StartAsServer(tbIp.Text, tbPort.Text); udpServer.MessageEvent += OnReceiveMeaasge; //udpServer.getForm(this); }
private void BtnServer_Click(object sender, EventArgs e) { switch (this.btnServer.Text) { case "Start": udp_Server = new Udp_Server(); udp_Server.StartAsServer(tbIP.Text, tbPort.Text); udp_Server.MessageEvent += OnRecevieViewList; tbCommand.Enabled = false; this.btnServer.Text = "Stop"; break; case "Stop": udp_Server.StopAsServer(); tbCommand.Enabled = true; this.btnServer.Text = "Start"; break; } }
static string CmdExcute(string sCommand) { string[] splitCommand = sCommand.ToUpper().Split(new String[] { " " }, StringSplitOptions.None); switch (splitCommand[0]) { case "EXIT": return("FAIL"); case "SET": if (splitCommand[1].Equals("MACHINE")) { String setMachineName = splitCommand[2]; if (setMachineName.Length > 0) { Machine newMachine = new Machine(); newMachine.SetMachine(setMachineName); machineList.Add(newMachine); return("SUCCESS"); } } else if (splitCommand[1].Equals("MACHINESTATE")) { foreach (Machine machine in machineList) { if (machine.MachineName.Equals(splitCommand[2])) { machine.SetMachineState(splitCommand[3]); return(machine.View()); } } } else { goto default; } break; case "VIEW": if (splitCommand[1].Equals("MACHINE")) { String findMachineName = splitCommand[2]; foreach (Machine machine in machineList) { if (machine.MachineName.Equals(findMachineName)) { logger.Info(machine.ViewMachine(machine.MachineName)); return("SUCCESS"); } } } else if (splitCommand[1].Equals("MACHINELIST")) { //logger.Info(Fomatter.XmlWriter(machineList)); //return "SUCCESS"; return(Fomatter.XmlWriter(machineList)); } else { goto default; } break; case "SAVE": if (splitCommand[1].Equals("MACHINELIST")) { String sFileName = @".\MachineList.xml"; if (sFileName.Length > 0) { logger.Info("Start Save MachineList ... "); XmlDocument doc = new XmlDocument(); doc.Load(new System.IO.StringReader(Fomatter.XmlWriter(machineList))); doc.Save(sFileName); logger.Info("End Save MachineList "); } } else { goto default; } break; case "LOAD": if (splitCommand[1].Equals("MACHINELIST")) { String sFileName = @".\MachineList.xml"; if (sFileName.Length > 0) { logger.Info("Start Loading MachineList ... "); XmlDocument doc = new XmlDocument(); doc.Load(sFileName); machineList = (List <Machine>)Fomatter.XmlDeserialize(doc.OuterXml); logger.Info("End Loading MachineList "); } } else { goto default; } break; case "START": /* TCP | UDP 통신 Start */ if (splitCommand[1].Equals("TCP")) { tcpConnect = new TcpConnect(); tcpConnect.StartListening(splitCommand[2]); tcpConnect.OnReceiveMessage += OnReceiveMeaasge; return("SUCCESS"); } else if (splitCommand[1].Equals("UDP")) { udpServer = new Udp_Server(); udpServer.StartAsServer(splitCommand[2], splitCommand[3]); udpServer.MessageEvent += OnReceiveMeaasge; return("SUCCESS"); } else if (splitCommand[1].Equals("AUTOSAVE")) { int interval = 60; if (splitCommand.Length > 2) { //if (int.TryParse(splitCommand[2], out interval)) SET_AUTOSAVE(interval); } } else if (splitCommand[1].Equals("MULTICAST")) { if (udpServer != null) { udpServer.JoinMulticastGroup(); return("SUCCESS"); } } else if (splitCommand[1].Equals("AUTOSEND")) { int interval; if (int.TryParse(splitCommand[2], out interval)) { AutoSendMessage(interval, splitCommand[3], splitCommand[4], splitCommand[5]); } } break; case "STOP": /* TCP | UDP 통신 Stop */ if (splitCommand[1].Equals("TCP")) { tcpConnect.StopListening(); logger.Info("Dispose of a TCP Listener ..."); return("SUCCESS"); } else if (splitCommand[1].Equals("UDP")) { udpServer.StopAsServer(); logger.Info("Dispose of a UDP Listener ..."); return("SUCCESS"); } break; case "SEND": Udp_Client client = new Udp_Client(); client.StartAsClient(splitCommand[1], splitCommand[2]); StringBuilder sb = new StringBuilder(); for (int i = 3; i < splitCommand.Length; i++) { sb.Append(splitCommand[i] + " "); } client.SendData(Encoding.UTF8.GetBytes(sb.ToString().Trim())); break; case "SENDR": if (splitCommand[1].Equals("UDP")) { if (udpClient == null) { udpClient = new Udp_Client(); udpClient.StartAsClient(splitCommand[2], splitCommand[3]); } StringBuilder sb2 = new StringBuilder(); for (int i = 4; i < splitCommand.Length; i++) { sb2.Append(splitCommand[i] + " "); } byte[] bResponse = udpClient.SendRequest(Encoding.UTF8.GetBytes(sb2.ToString())); return(Encoding.UTF8.GetString(bResponse)); } break; default: logger.Info("다시 입력바랍니다."); break; } return(null); }