public void Listen()
        {
            try
            {
                while (true)
                {
                    StreamReader reader  = new StreamReader(client.GetStream());
                    string       message = reader.ReadLine();
                    Request      req     = JsonConvert.DeserializeObject <Request>(message);
                    switch (req.modul)
                    {
                    case "ok":
                        VisibleComponents(req.data);
                        if (req.data == "admin")
                        {
                            form1.btn_ban.BeginInvoke(new InvokeDelegate(form1.VisibleBan));
                            form1.btn_unban.BeginInvoke(new InvokeDelegate(form1.VisibeUnban));
                        }
                        break;

                    case "enter":
                        rd           = new RoomDialog(client, form1.request);
                        rd.room.name = req.command;
                        rd.Text      = req.command;
                        if (req.data == "missed")
                        {
                            string[] tmp1 = req.time.Split('.');
                            for (int i = 0; i < tmp1.Length; i++)
                            {
                                rd.rtb_message.Text += tmp1[i] + "\n";
                            }
                        }
                        tr = new Thread(new ThreadStart(OpenForm));
                        tr.Start();
                        break;

                    case "leave":
                        rd.Close();
                        break;

                    case "bancreate":
                        MessageBox.Show(req.data);
                        break;

                    case "wrongroom":
                        MessageBox.Show("Ошибка, комната " + req.data + " уже создана");
                        break;

                    case "refresh":
                        string[] splitrooms = req.data.Split('.');
                        if (splitrooms[0] == "")
                        {
                            break;
                        }
                        form1.lst_rooms.Items.Clear();
                        form1.lst_rooms.Items.AddRange(splitrooms);
                        break;

                    case "refreshclients":
                        string[] splitclients = req.data.Split('.');
                        form1.lst_clients.Items.Clear();
                        if (splitclients[0] == "")
                        {
                            break;
                        }
                        form1.lst_clients.Items.AddRange(splitclients);
                        break;

                    case "message":
                        rd.rtb_message.Text += req.data + "\n";
                        break;

                    case "youbanned":
                        rd.rtb_message.Text += req.data + "\n";
                        break;

                    case "pofig":
                        int a = -1;
                        for (int i = 0; i < form1.lst_rooms.Items.Count; i++)
                        {
                            string[] str1 = form1.lst_rooms.Items[i].ToString().Split(' ');
                            if (str1[0] == req.command)
                            {
                                a = i;
                            }
                        }
                        if (a != -1)
                        {
                            form1.lst_rooms.Items.RemoveAt(a);
                            form1.lst_rooms.Items.Insert(a, req.command + "   +" + req.data);
                        }
                        else
                        {
                            form1.lst_rooms.Items.Insert(form1.lst_rooms.Items.Count, req.command + "   +" + req.data);
                        }
                        break;

                    case "wrongprivate":
                        MessageBox.Show("Уже есть приватная комната с этим клиентом");
                        break;

                    case "badlogin":
                        MessageBox.Show("Плохой Log/pass или юзер online");
                        break;
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Сервер упал");
                form1.client = null;
                try
                {
                    rd.Close();
                }
                catch (Exception e) { }

                foreach (Control item in form1.Controls)
                {
                    item.Enabled = false;
                    client       = null;
                }
            }
        }
        public void Listen()
        {
            while (true)
            {
                try
                {
                    StreamReader reader  = new StreamReader(client.GetStream());
                    string       message = reader.ReadLine();
                    Request      req     = JsonConvert.DeserializeObject <Request>(message);
                    switch (req.modul)
                    {
                    case "ok":
                        CaseOk(req.data);
                        break;

                    case "enter":
                        CaseEnter(req.command, req.data, req.time);
                        break;

                    case "leave":
                        rd.Close();
                        break;

                    case "bancreate":
                        MessageBox.Show("You have been banned for " + req.data);
                        break;

                    case "refresh":
                        CaseRefresh(req.data);
                        break;

                    case "refreshclients":
                        CaseRefreshClients(req.data);
                        break;

                    case "message":
                        rd.rtb_message.Text += req.data + "\n";
                        break;

                    case "youbanned":
                        rd.rtb_message.Text += req.data + "\n";
                        break;

                    case "wrongroom":
                        MessageBox.Show("Error, room " + req.data + " has already been created.");
                        break;

                    case "alreadyenter":
                        MessageBox.Show("You are already logged into this room.");
                        break;

                    case "passive":
                        CasePassive(req.command, req.data, req.time);
                        break;
                    }
                }
                catch (Exception ex)
                {
                    return;
                }
            }
        }