private void button_Click(object sender, RoutedEventArgs e) { //Is it neccessary to make UserData multi-instances? string addr = servers.Text.Trim(); if (currentClient != null || string.IsNullOrWhiteSpace(addr) || string.IsNullOrWhiteSpace(name.Text)) return; System.Net.IPAddress ip; if (!System.Net.IPAddress.TryParse(addr, out ip)) try { var ips = System.Net.Dns.GetHostAddresses(addr); foreach(var i in ips) if (i.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork) { ip = i; break; } } catch { } if (ip != null) { lock (this) { currentClient = new PokemonLobbyClient(ip, PORT); currentClient.LoginFailed += client_LoginFailed; currentClient.LoginCompleted += client_LoginComplete; currentClient.Login(name.Text.Trim(), avatarVM.InnerAvatarId, avatarUrl.Text);//"http://tb.himg.baidu.com/sys/portrait/item/f543c7aec9f1b2bbcac76c6f6c69bfd85603" } IsEnabled = false; } }