// Connecte le client au serveur.
        // Le pseudo choisi doit être différent de ceux des autres clients connectés.
        private void Connect_Click(object sender, RoutedEventArgs e)
        {
            // Serveur, port et pseudo par défaut : localhost, 28234, Anonyme
            String serveurName = (serveurBox.Text.Length == 0) ? "localhost" : serveurBox.Text;
            String portNumber  = (portBox.Text.Length == 0) ? "28234" : portBox.Text;

            pseudo = (pseudoBox.Text.Length == 0) ? "Anonyme" : pseudoBox.Text;

            // L'objet RemoteInterface récupère ici la référence de l'objet du serveur.
            // On donne l'URI (serveur, port, classe du serveur) et le nom de l'interface.
            RemoteInterface = (RemotingInterface.IRemoteChain)Activator.GetObject(
                typeof(RemotingInterface.IRemoteChain), "tcp://" + serveurName + ":" + portNumber + "/Serveur");

            if (RemoteInterface.RegisterUser(pseudo))
            {
                chatBox.Text += "Connecté au serveur.\n";

                boutonConnect.IsEnabled = false;
                pseudoBox.IsEnabled     = false;
                serveurBox.IsEnabled    = false;
                portBox.IsEnabled       = false;

                boutonDisconnect.IsEnabled = true;
                boutonPing.IsEnabled       = true;
                boutonEnvoi.IsEnabled      = true;
                messageBox.IsEnabled       = true;

                // Récupération des utilisateurs connectés.
                List <string> usersList = RemoteInterface.GetConnectedUsers();
                for (int i = 0; i < usersList.Count - 1; i++)
                {
                    clientsBox.Items.Add(usersList[i]);
                }

                // Création et lancement du thread pour la réception de messages.
                lastMessage   = "";
                receiveThread = new Thread(() => ReceiveMessages());
                receiveThread.Start();
            }
            else
            {
                chatBox.Text += "Pseudo existant. Veuillez choisir un autre pseudo.\n";
            }
        }
        // Déconnecte le client du serveur.
        private void Disconnect_Click(object sender, RoutedEventArgs e)
        {
            // Stoppe le thread de réception de messages.
            receiveThread.Abort();

            // Indique la déconnexion.
            RemoteInterface.UnregisterUser(pseudo);
            RemoteInterface = null;
            chatBox.Text   += "Déconnecté du serveur.\n";

            // Vide la liste des utilisateurs connectés.
            clientsBox.Items.Clear();

            boutonConnect.IsEnabled = true;
            pseudoBox.IsEnabled     = true;
            serveurBox.IsEnabled    = true;
            portBox.IsEnabled       = true;

            boutonDisconnect.IsEnabled = false;
            boutonPing.IsEnabled       = false;
            boutonEnvoi.IsEnabled      = false;
            messageBox.IsEnabled       = false;
        }