본문 바로가기

일상

서버소켓에 타임아웃 설정 이유와 특징

서버소켓에 타임아웃 설정 이유와 특징


어제 저녁부터 서버소켓 타임아웃에 꼽혀가지고

한참을 검색했다.


결국 마음에 드는 ? (이해가 가는...)

검색 결과를 찾았다.


"


* public synchronized void setSoTimeout(int timeout)


  - 서버소켓의 타임아웃 옵션을 설정한다. 


타임아웃시간을 설정하면 accept() 메소드는 타임아웃으로 주어진 시간까지 수신패킷을 기다리게 된다. 


여기서는 반드시 타임아웃값은 양수로 주어야 하며, 만약 타임아웃이 발생하면, SocketTimeoutException 이란 예외가 발생한다. 


만약 타임아웃을 설정하지 않으면, 서버소켓을 생성하고 accept() 메소드를 수행하면 무한정 기다리게 된다. 


소켓의 connect() 메소드와 달리 시스템에서 디폴트 타임아웃을 제공하지 않는다.



"


서버소켓에 타입아웃을 설정하는 이유가

accept() 메소드를 무한정 기다리게 하지 말라는 거구나...


특이사항은 소켓의 connect() 메소드와 달리 디폴트 타임아웃을 제공하지 않는다...


그러면,


필히 서버소켓에 타임아웃을 설정해야하는 거구나...


하나 배웠다.


어제 밤부터 고생해서 찾았는데...


알고보니 간단한 거였네. ㅋ