2013-05-20 4 views
2

서버가 종료 될 때 남아있는 모든 연결을 닫아야하는 서버 프로그램이 있습니다. SocketChannel.close()에 전화해야한다는 것을 알고 있습니다. 내 질문은 또한 SocketChannel와 연결된 소켓을 닫아야하거나 SocketChannel.close()이 자동으로 해당 소켓을 닫아야하는 경우입니다.SocketChannel.close()도 소켓을 닫습니까?

답변

-1

SocketChannel.close()은 소켓을 닫아야합니다. 그러나이 문제와 관련하여 몇 가지 버그가있었습니다 (오래 전에 해결되었을 것입니다). http://bugs.sun.com/view_bug.do?bug_id=4960962. 문제가 발생할 수있는 또 다른 상황 : http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6179351

+0

@EJP 예, 그렇지 않으면 버그 인 것 같습니다. 감사. – xagyg

+0

지금 인용 한 버그는 '해결 된 날짜 : 2005-04-16'을 보여줍니다. 이 분야에서 어려움을 겪고 계시다면 제 대답에 언급 된 연기가 가까워 졌기 때문에 거의 확실합니다. – EJP

2

물론 소켓을 닫습니다. 그게 또 뭐야? 유일한 예외는 채널이 선택기에 등록 된 경우입니다. 실제 닫기가 다음 선택 작업으로 연기 될 때입니다.

관련 문제