el siguiente código es el código del servidor en mi aplicación:Java Detener servidor de rosca
private int serverPort;
private Thread serverThread = null;
public void networkListen(int port){
serverPort = port;
if (serverThread == null){
Runnable serverRunnable = new ServerRunnable();
serverThread = new Thread(serverRunnable);
serverThread.start();
} else {
}
}
public class ServerRunnable implements Runnable {
public void run(){
try {
//networkConnected = false;
//netMessage = "Listening for Connection";
//networkMessage = new NetworkMessage(networkConnected, netMessage);
//setChanged();
//notifyObservers(networkMessage);
ServerSocket serverSocket = new ServerSocket(serverPort, backlog);
commSocket = serverSocket.accept();
serverSocket.close();
serverSocket = null;
//networkConnected = true;
//netMessage = "Connected: " + commSocket.getInetAddress().getHostAddress() + ":" +
//commSocket.getPort();
//networkMessage = new NetworkMessage(networkConnected, netMessage);
//setChanged();
//notifyObservers(networkMessage);
} catch (IOException e){
//networkConnected = false;
//netMessage = "ServerRunnable Network Unavailable";
//System.out.println(e.getMessage());
//networkMessage = new NetworkMessage(networkConnected, netMessage);
//setChanged();
//notifyObservers(networkMessage);
}
}
}
El código de tipo de obras es decir, si im intentar establecer una conexión recta ambos extremos se comunican y actualización.
El problema es que mientras estoy escuchando una conexión si quiero dejar de escuchar, el hilo del servidor continúa ejecutándose y causa problemas.
Sé que no debería usar .stop() en un hilo así que me preguntaba cómo sería la solución con esto en mente?
EDITAR: se ha comentado el código innecesario.
Muchas gracias por "Break from the loop": ¡es la clave! – Kirzilla