Java Stop Server Thread

8

Der folgende Code ist Servercode in meiner App:

%Vor%

Die Code-Art funktioniert, d. h. wenn ich eine gerade Verbindung versuche, kommunizieren beide und aktualisieren sie.

Das Problem ist, während ich auf eine Verbindung höre, wenn ich aufhören will, dann läuft der Server-Thread weiter und verursacht Probleme.

Ich weiß, ich sollte nicht .stop () auf einem Thread verwenden, also fragte ich mich, wie die Lösung in diesem Sinne aussehen würde?

BEARBEITEN: nicht benötigten Code auskommentiert.

    
iTEgg 10.05.2010, 17:17
quelle

2 Antworten

12

Schließen Sie den Server-Socket von einem externen Thread. Wie in der Dokumentation zu Serversocket.close () Die Blockierung akzeptiert eine SocketException und Sie können Ihren Thread herunterfahren.

    
CuriousPanda 10.05.2010, 17:29
quelle
6

Nachdem Sie Ihren ServerSocket initialisiert haben, verwenden Sie setSoTimeout . Setzen Sie das Akzeptieren in eine Schleife und fangen Sie die Timeouts ab. Brechen Sie von der Schleife ab und kehren Sie von run zurück, je nachdem, ob Sie fortfahren möchten oder nicht.

    
Jonathon Faust 10.05.2010 17:23
quelle

Tags und Links