Пример #1
0
 public Message Parse(string msg)
 {
     Message message = null;
     try
     {
         XmlDocument doc = new XmlDocument();
         doc.LoadXml(msg);
         string sender = this.GetSender(doc);
         string command = this.GetCommand(doc);
         List<string> receivers = this.GetReceivers(doc);
         Dictionary<string, string> parameters = this.GetParameters(doc);
         message = new Message(msg, sender, command, receivers, parameters);
     }
     catch
     {
     }
     return message;
 }
Пример #2
0
 private void ReturnClients(Message message)
 {
     MessageGenerator generator = new MessageGenerator("CLIENTS", this.name);
     generator.AddReceiver(message.Sender);
     foreach (DataRow row in this.clientSet.Tables["Client"].Rows)
     {
         generator.AddParameter("Client", row["Name"].ToString());
     }
     this.Send(message.Sender, generator.GetMessage());
 }
Пример #3
0
 private void RegisterClient(Message message)
 {
     DataTable table = this.clientSet.Tables["Client"];
     try
     {
         Dictionary<string, string> parameters = message.Parameters;
         string sender = message.Sender;
         string clientIP = parameters["IP"];
         int clientPort = Convert.ToInt32(parameters["Port"]);
         if ((message.Sender != null) || (message.Sender.Trim().Length != 0))
         {
             DataRow[] rowArray = table.Select(string.Format("Name='{0}'", message.Sender));
             if (rowArray.Length == 0)
             {
                 DataRow row = table.NewRow();
                 row["Name"] = sender;
                 row["IP"] = clientIP;
                 row["Port"] = clientPort;
                 row["Date"] = DateTime.Now.ToShortDateString();
                 table.Rows.Add(row);
             }
             else
             {
                 rowArray[0]["Name"] = sender;
                 rowArray[0]["IP"] = clientIP;
                 rowArray[0]["Port"] = clientPort;
                 rowArray[0]["Date"] = DateTime.Now.ToShortDateString();
             }
             this.SaveTable();
             if (this.OnClientConnect != null)
             {
                 this.OnClientConnect(this, new ServerEventArgs(sender, clientIP, clientPort));
             }
         }
     }
     catch (Exception)
     {
     }
 }
Пример #4
0
        private void ProcessMessage(Message message)
        {
            switch (message.Command)
            {
                case "REG":
                    this.RegisterClient(message);
                    return;

                case "UNREG":
                    this.UnregisterClient(message.Sender);
                    return;

                case "CLIENTS":
                    this.ReturnClients(message);
                    return;
            }
            if (this.OnReceive != null)
            {
                this.OnReceive(this, message);
            }
        }