[SOCKET]Faire une action en cas de perte de connexion.

 
Poster un nouveau sujet   Répondre au sujet    iprelax.fr Index du Forum -> Java
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
meda
dummy mioche
dummy mioche


Inscrit le: 05 Déc 2004
Messages: 1

MessagePosté le: Dim Déc 05, 2004 7:06 pm    Sujet du message: [SOCKET]Faire une action en cas de perte de connexion. Répondre en citant

bonjour tout le monde,
j'ai une application client et une serveur, je voudrais que quand l'application cliente se fermer une action soit declancher malheureusement je ne sais pas comment faire. Je pensais mettre avec des exception mais je ne sais pas lesquels faut prendre.
Voici mon code coter serveur:
Code:

//Mon serveur gère plusieurs connections clients à l'aide de threads idntifiés par un entier 

public class threadserveur extends Thread
   {
      Socket connexion;
      int numero;
      boolean arret=false;
      public threadserveur(Socket connexion, int numero)
      {
         this.connexion = connexion;
         this.numero = numero;
      }
      public void run()
      {
                }
         }
 

//Dans le run du thread threadserveur plusieurs actions sont possiblesavec le client comme des requêtes sql ...


//dans le run il y a sa
try
         {
            boolean arret = false;
            BufferedReader entrée = new BufferedReader(new InputStreamReader(connexion.getInputStream()));
            PrintWriter sortie = new PrintWriter(connexion.getOutputStream(), true);
            String nom=null;
            String mdp=null;
            while (!arret)
            {
               try
               {
               String ligne = entrée.readLine();
               if(ligne.equals("verification"))
               {
                  nom=entrée.readLine();
                  mdp=entrée.readLine();
                  int machin=verification(nom,mdp);
                  if(machin==1)
                  {
                     
                     sortie.println("true");
                     while(!arret)
                     {
                     }


 // c'est ici où est le problème, je voudrais que l'application serveur execute util_deconnexion() quand le client s'éteint.

                     util_deconnexion(nom,mdp);

// Mais quand le client s'éteint par exemple avec un clic sur la fermeture de l'application, le serveur termine directement le thread et ne passe pas par util_deconnexion().

                  }
                  else
                  {
                     if(machin==2)
                     {
                        sortie.println("Mot de passe erroné");
                     }
                     else
                     {
                        sortie.println("L'utilisateur "+ nom +" n'existe pas");
                     }
                  }
               }
               if(ligne.equals("enregistrement"))
               {
                  nom=entrée.readLine();
                  mdp=entrée.readLine();
                  boolean machin=envoie_enregistrement(nom,mdp);
                  if(machin==true)
                  {
                     sortie.println("L'utilisateur "+ nom +" a bien été enregistré");
                  }
                  else
                  {
                     sortie.println("Vous n'avez pas été enregistré");
                  }
                  arret=true;
               }
               }
               catch(IOException ioeee)
               {
                  panneau.append("erreur 2");
               }
               catch(Exception ee)
               {
                  panneau.append("erreur 1");
               }
            }
            connexion.close();
            util_deconnexion(nom,mdp);
         }
         catch(IOException e)
         {
            panneau.append("erreur : " + e);
         }
      }
   }
 
merci pour votre aide
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    iprelax.fr Index du Forum -> Java Toutes les heures sont au format CET (Europe)
Page 1 sur 1

 
Sauter vers:  
Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum
Affilzen SARL : Mention légale