Bonjour,

J'attend qu'un client se connecte à un port choisit dans une classe ConnectionController.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
ServerSocket serverSocket = new ServerSocket(portLecture);
Socket socket = (Socket) serverSocket.accept();
Lorsque la connexion est établit, je lance un contôleur de maintient de la connexion (watchdog) pour vérifier que le client est toujours connecté. Pour cela j'utilise un Thread qui envoi périodiquement une donnée et qui contrôle que le client envoi bien la réponse en retour. Dans le cas ou je n'ai aucune réponse du client, je voudrais arrêté le Thread de contrôle de la connexion et retourner dans le ConnectionController pour attendre une nouvelle connexion de client.

Pas de soucis pour arrêté le Thread Watchdog, mais lorsque je rappelle mon attente de connexion, j'ai un message :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
java.net.BindException: Address already in use
Pourtant j'ai essayé les méthodes suivantes :
ou
sans résultats

Alors je voudrais savoir comment libérer cette adresse pour pouvoir rouvrir une Socket sur le même port que précédemment.