예제 #1
0
        public async Task RefreshLobby()
        {
            lb_lobs.Items.Clear();
            Cursor = Cursors.WaitCursor;
            var lobs = await Task.Run(() => {
                try {
                    return(StringHelper.ParseComData(TcpClient_.SendMessage_ShortConnect("query_lobbies@", Global.SelectedServer)));
                } catch (Exception ex) {
                    MessageBox.Show(ex.Message);
                    return(null);
                }
            });

            Cursor = Cursors.Default;

            if (lobs == null)
            {
                return;
            }
            if (lobs.Count == 0)
            {
                MessageBox.Show("当前服务器中没有任何房间");
                return;
            }
            foreach (var l in lobs)
            {
                lb_lobs.Items.Add(l);
            }
        }
예제 #2
0
        private async void testCurrentServer_Click(Object sender, EventArgs e)
        {
            Cursor = Cursors.WaitCursor;
            bool ok = await Task.Run(() => {
                try {
                    UdpClient_ udpClient_ = new UdpClient_();
                    string tcpRe          = TcpClient_.SendMessage_ShortConnect("ping@", Global.SelectedServer);
                    string udpRe          = udpClient_.SendMessage("ping@", Global.SelectedServer);
                    if (tcpRe == "OK" && udpRe == "OK")
                    {
                        return(true);
                    }
                    return(false);
                } catch (Exception ex) {
                    MessageBox.Show(ex.Message);
                    return(false);
                }
            });

            if (ok)
            {
                MessageBox.Show("OK", Global.SelectedServer.Readable());
            }
            Cursor = Cursors.Default;
        }
예제 #3
0
        private void btn_OK_Click(Object sender, EventArgs e)
        {
            var rep = TcpClient_.SendMessage_ShortConnect(string.Format("join_lobby@{0},{1},{2}", lobName, Global.MyName, tb_text.Text), Global.SelectedServer);

            switch (rep)
            {
            case "PSWD_INCOR":
                MessageBox.Show("密码错误");
                return;

            case "NO_SUCH_LOBBY":
                MessageBox.Show("该房间当前不可使用");
                Close();
                return;

            case "ALREADY_IN_LOBBY":
                MessageBox.Show("您已在房间中");
                Close();
                return;

            default:
                break;
            }
            var     url___cookie = Regex.Split(rep, @"\$_\$", RegexOptions.IgnoreCase);
            InLobby inLobby      = new InLobby(false, lobName, url___cookie[1], url___cookie[0], new LobbyBorrower(Global.SelectedServer, lobName, tb_text.Text));

            inLobby.Show();
            Close();
        }
예제 #4
0
 public string Return()
 {
     try {
         return(TcpClient_.SendMessage_ShortConnect("delete_lobby@" + LobbyName, ipport));
     } catch (Exception ex) {
         stLogger.Log(ex.ToString());
         throw;
     }
 }
예제 #5
0
 public string Lend(string msg)
 {
     try {
         return(TcpClient_.SendMessage_ShortConnect(msg, ipport));
     } catch (Exception ex) {
         stLogger.Log(ex.ToString());
         throw;
     }
 }
예제 #6
0
 public string Leave(string myName)
 {
     try {
         return(TcpClient_.SendMessage_ShortConnect(
                    new ypmPackage("exit_lobby",
                                   new string[] {
             myName, LobbyName
         }).ToString()
                    , ipport));
     } catch (Exception ex) {
         stLogger.Log(ex.ToString());
         throw;
     }
 }