2010-05-10 5 views
8

다음 코드는 내 응용 프로그램에서 서버 코드입니다.자바 서버 중지 스레드

문제는 수신 대기를 중단하고 서버 스레드가 계속 실행되어 문제를 일으키는 경우입니다.

스레드에서 .stop()을 사용해서는 안된다는 것을 알고 있으므로 솔루션을 염두에두고 어떤 점이 궁금한가요?

편집 : 불필요한 코드가 주석 처리되었습니다.

답변

12

외부 스레드에서 서버 소켓을 닫습니다. Serversocket.close()에 대한 문서에 따라 차단 승인에서 SocketException이 발생하고 스레드를 종료 할 수 있습니다.

6

ServerSocket을 초기화 한 후 setSoTimeout을 사용하십시오. 수락을 루프에 넣고 시간 초과를 포착하십시오. 루프에서 빠져 나와 계속할지 여부에 따라 run에서 돌아옵니다.

+0

"루프에서 벗어나기"에 너무 감사드립니다 - 열쇠입니다! – Kirzilla