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;
            }
        }
Пример #2
0
        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"));
            }
        }
Пример #3
0
 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);
                }
            }));
        }