예제 #1
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;
        }
예제 #2
0
        /// <summary>
        /// 如果可用则会自动更改
        /// </summary>
        /// <param name="ip"></param>
        /// <param name="tcpp"></param>
        /// <param name="udpp"></param>
        /// <returns></returns>
        public async Task <string> CheckServerAvailable(string ip, string tcpp, string udpp)
        {
            var info = new IPPort {
                IP = ip, TcpPort = tcpp, UdpPort = udpp
            };

            return(await Task.Run(async() => {
                try {
                    UdpClient_ udpClient_ = new UdpClient_();
                    var res = await httpClient.GetAsync($"{Domain( info )}/ping");
                    string tcpRe = res.ResponseString;
                    string udpRe = udpClient_.SendMessage("ping@", info);
                    if (tcpRe != "OK")
                    {
                        return "TCP端口不可用";
                    }
                    if (udpRe != "OK")
                    {
                        return "UDP端口不可用";
                    }
                    CurrentServer = info;
                    return "OK";
                } catch (Exception ex) {
                    return $"发生错误:{ex.Message}";
                }
            }));
        }
예제 #3
0
 public LobbyBorrower(IPPort ipport, string lobbyName, string lobbyPassword)
 {
     this.ipport   = ipport;
     LobbyName     = lobbyName;
     LobbyPassword = lobbyPassword;
     LobbyName     = lobbyName;
     udpClient     = new UdpClient_();
 }