void sock_OnLogin(object sender, LoginEventArgs e) { switch (e.ErrCode) { case LoginEventArgs.ErrorCode.Ok: Logging(ResourceManager.GetStringByKey("Str_SuccessedConnect") + '\n' + string.Format("{0}:{1}", e.ConnectedIP, e.ConnectedPort)); PengChat3ClientSock sock = (PengChat3ClientSock)sender; Dispatcher.Invoke(DispatcherPriority.Normal, new Action(delegate { CntComboBoxItem item = new CntComboBoxItem(); item.Text = e.ConnectedIP + ":" + e.ConnectedPort.ToString(); item.Sock = sock; comboBox_ConnectionInfo.Items.Add(item); comboBox_ConnectionInfo.SelectedItem = item; ChangeStatusConnectionInfoControls(Visibility.Visible); })); sock.GetRoomInfo(); break; case LoginEventArgs.ErrorCode.UnknownIdPw: string err = ResourceManager.GetStringByKey("Str_NotSuccessedConnect"); Logging(err); Utility.Error(err); break; } }
private void LoginButton_Click(object sender, RoutedEventArgs e) { if (textBox_ID.Text != "" && passwordBox_PW.Password != "" && textBox_IP.Text != "") { PengChat3ClientSock sock = new PengChat3ClientSock(); try { sock.OnLogin += sock_OnLogin; sock.OnDisconnected += sock_OnDisconnected; sock.OnRoomInfo += sock_OnRoomInfo; sock.Connect(textBox_IP.Text, App.Port); sock.Login(textBox_ID.Text, passwordBox_PW.Password); } catch (Exception ex) { Utility.Error(ResourceManager.GetStringByKey("Str_CannotConnectToServer") + '\n' + ex.Message); if (sock != null) { sock.Dispose(); sock = null; } return; } } else { Utility.Error(ResourceManager.GetStringByKey("Str_EmptyLabel")); } }
public void ShutdownSocket() { if (Sock != null) { Sock.Dispose(); Sock = null; } }
void sock_OnDisconnected(object sender, DisconnectedEventArgs e) { PengChat3ClientSock sock = (PengChat3ClientSock)sender; switch (e.ErrCode) { case DisconnectedEventArgs.ErrorCode.ServerError: string err = ResourceManager.GetStringByKey("Str_DisconnectedServer") + '\n' + e.DisconnectedIP + ':' + e.DisconnectedPort.ToString(); Logging(err); //Utility.Error(err); break; case DisconnectedEventArgs.ErrorCode.Logout: string msg = ResourceManager.GetStringByKey("Str_LoggedOut") + '\n' + e.DisconnectedIP + ':' + e.DisconnectedPort.ToString(); Logging(msg); break; } Dispatcher.Invoke(DispatcherPriority.Normal, new Action(delegate { foreach (CntComboBoxItem item in comboBox_ConnectionInfo.Items) { if (item.Sock == sock) { comboBox_ConnectionInfo.Items.Remove(item); break; } } if (comboBox_ConnectionInfo.Items.IsEmpty) { ChangeStatusConnectionInfoControls(Visibility.Hidden); } })); }