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; }
/// <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}"; } })); }
public LobbyBorrower(IPPort ipport, string lobbyName, string lobbyPassword) { this.ipport = ipport; LobbyName = lobbyName; LobbyPassword = lobbyPassword; LobbyName = lobbyName; udpClient = new UdpClient_(); }