SocketTimeoutException

SocketTimeoutException (소켓 시간 초과 예외)

소켓 읽기 또는 accept에서 시간 초과가 발생했음을 나타내는 예외입니다. InterruptedIOException의 하위 클래스입니다.

출처: Java API Reference

본문

setSoTimeout()으로 설정된 시간 안에 데이터가 도착하지 않거나 연결 요청이 없으면 발생합니다.

이 예외는 블로킹 소켓 연산이 지정된 제한 시간을 초과했을 때 발생합니다. InterruptedIOException의 하위 클래스이며, 따라서 I/O 예외 계열입니다.

Socket.setSoTimeout() 또는 ServerSocket.setSoTimeout()으로 설정한 시간 안에 데이터가 도착하지 않거나 연결이 수락되지 않으면 던져집니다.

시간 초과를 활용하면 네트워크 연산이 영원히 차단되는 것을 방지하고, 주기적으로 상태를 확인하는 폴링 구조를 구현할 수 있습니다.

setSoTimeout(int)으로 설정한 시간이 지나도 데이터가 없으면 발생합니다.

블로킹 연산이 무한정 기다리지 않도록 제한 시간을 설정하는 데 사용됩니다.

더 알아보기 (Learn more)

Java 공식 API