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.
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.
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.
Tags und Links java multithreading