public Message processingMessage(Message msg) { //Vorhandenen Client identifizieren Boolean vorhanden = false; int vorhandenIndex = -1; for (int i = 0; i < Data.Devices.Count; i++) { if (msg.sourceIP.Equals(Data.Devices[i].IP)) { vorhanden = true; vorhandenIndex = i; } } //Device hinzufügen if (!vorhanden) { Device dev = new Device(msg.sourceIP, Convert.ToString(msg.sourcePort)); loadDeviceInfos(dev, msg); Data.Devices.Add(dev); ((UIMainWindow)Owner).OnStatusEvent("Ein neuer Client mit der IP " + msg.sourceIP + " hat sich angemeldet"); } else { Data.Devices[vorhandenIndex].Login(); ((UIMainWindow)Owner).OnStatusEvent("Ein bekannter Client (" + Data.Devices[vorhandenIndex].Name + ") hat sich wieder angemeldet"); } ((UIMainWindow)Owner).OnUpdateEvent(); Message answer = null; //Antwortauswertung ====================================== XmlDocument xml = new XmlDocument(); Boolean logout = false; try { xml.LoadXml(msg.Msg); if (xml.InnerXml.Equals("<logout />")) { logout = true; } } catch (Exception ef) { xml = null; } //Logouterkennung if (xml != null && logout) { for (int i = 0; i < Data.Devices.Count; i++) { if (msg.sourceIP.Equals(Data.Devices[i].IP)) { Data.Devices[i].Logout(); ((UIMainWindow)Owner).OnUpdateEvent(); ((UIMainWindow)Owner).OnStatusEvent("Der Client (" + Data.Devices[i].Name + ") hat sich abgemeldet"); } } } msg.answerMessage("angekommen"); return(answer); }