Bonjour à tous,

Je crée un petit serveur java et lorsque je l'arrete, il me lance l'exception socket closed au niveau de l'accept
... forcément puisque j'ai fermé la socket avant de quitter le serveur.

Celà n'a pas d'incidence sur le prog car je le ferme. Je me demande simplement si c'est une façon correcte de procéder ou serait-il plus propre de " débloquer " l'accept et si oui comment le faire ?

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
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
public class ThreadClient implements Runnable {
 
    Thread th;
    boolean enMarche;
    Socket       cSocket = null;
    ServerSocket sSocket = null;
 
    /** Creates a new instance of ThreadClient */
    public ThreadClient() 
    {
        try
        {
          sSocket = new ServerSocket(24061);
        }
        catch( Exception exc ) { System.out.println("Erreur Socket Serveur: "+exc.getMessage());}
        th = new Thread( this );
        th.start();
    }
 
    public void run()
    {
       enMarche = true;
       while( enMarche )
       {
           try
           {
             cSocket = sSocket.accept();
           }
           catch( Exception exc ) { System.out.println("Erreur Socket Serveur: "+exc.getMessage());}
       }
    }
 
    public void interrupt()
    {
        enMarche = false;
        try
        {
          sSocket.close();
        }
        catch( Exception exc ){System.out.println("Erreur de fermeture socket: "+exc.getMessage());}
    }