Bonjour,
J'ai un programme qui attend la connexion d'un client avec ce code :
j'ai mis des petits points car après tout va bien, rien d'important.
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 public class TransfertFichier implements Runnable { private ServerSocket socketserver; private Socket socket; public TransfertFichier(ServerSocket s) { socketserver = s; } public final synchronized void run() { try { while (true) { // On attend la connexion d'un client socket = socketserver.accept(); .......
Le programme fonctionne très bien lorsque le client se connecte.
Mais j'aimerai faire une méthode pour arrêter la boucle while quand je le souhaite.
J'ai essayé de fermer le socket du serveur : socketserver.close();
Mais là ça lève une exception :
Normal, car la méthode run() est en attente d'une connexion à la ligne socketserver.accept();
Code : Sélectionner tout - Visualiser dans une fenêtre à part java.net.SocketException: socket closed
Si je mets un booléen dans la condition while, ça ne fonctionne pas car il faut d'abord qu'il ait fait un tour de boucle, or il est bloqué sur socketserver.accept();
Comprenez-vous mon problème ?
Pouvez-vous m'aider ?
Merci beaucoup.
Partager