Bonjour,

J'ai une petite application serveur qui fait office de serveur de socket. A son initialisation, j'ouvre une base de données HSQLDB. Et pour bien faire, je dois la fermer proprement quand je clos mon programme en faisant stop dans netbeans en l'occurence.

Ci-dessous mon bout de code grosse modo. Le problème c'est que je suis dans la boucle while(true) pour attendre des connexions au serveur de socket et je ne sais pas comment jouer la partie qui est dans finally quand je fais stop dans netbeans, ou que je killl serveur ou que je ferme la fenêtre dos qui le lance.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    try
    {
      database = new Database();
 
      ss = new ServerSocket(port); // ouverture d'un socket serveur sur port
 
      while (true) // attente en boucle de connexion (bloquant sur ss.accept)
      {
        new MarbleousThread(ss.accept(),marbleousServ); // un client se connecte, un nouveau thread client est lancďż˝
      }
    }
    finally {
        ss.close();
        Database.statement = Database.connexion.createStatement() ;
        Database.statement.executeUpdate("SHUTDOWN");
    }