Hi zusammen!
Momentan stehe ich gerade ziemlich aufm Schlauch und hoffe, dass mir hier irgendjemand helfen kann. Ich schreibe im Moment ein kleines Programm, welches u.a. eine Serverfunktionalität haben, also eingehende Verbindungen entgegennehmen soll. Dazu habe ich einen Thread mit folgender run()-Methode:
Der Klick auf einen Button löst nun eine Action aus, welche den Thread startet. Soweit läuft alles wie gewollt. Mein Problem ist nun, dass es auch möglich sein soll, den Thread auf die gleiche Weise wieder zu stoppen, also durch Klick auf einen Button. Die dazugehörige Action soll einfach "isListening" auf false setzen, wodurch die Schleife beendet wird. Da serverSocket.accept() aber blockiert, wird die Bedingung für die Schleife jedoch nicht geprüft, bis eine Verbindung eingegangen ist und der Thread läuft einfach weiter. Wie kann ich also diese "Blockade" umgehen?
Schon mal danke im Vorraus.
Momentan stehe ich gerade ziemlich aufm Schlauch und hoffe, dass mir hier irgendjemand helfen kann. Ich schreibe im Moment ein kleines Programm, welches u.a. eine Serverfunktionalität haben, also eingehende Verbindungen entgegennehmen soll. Dazu habe ich einen Thread mit folgender run()-Methode:
Java:
public void run() {
try {
serverSocket = new ServerSocket(port);
while(isListening) {
socket = serverSocket.accept();
Thread connectionThread = new ConnectionThread(this, socket);
connectionThread.start();
}
} catch (IOException e) {
e.printStackTrace();
}
}
Schon mal danke im Vorraus.