넌블럭킹 소켓으로 연결되서 파생된 소켓은?

dotri의 이미지

넌블럭킹 소켓 s 가 있습니다. s 는 listen() 상태이고, 연결이 들어와서 accept() 했습니다. accept() 는 클라이언트와 연결된 소켓을 리턴하는데, 이때 리턴되는 소켓은 블럭킹 소켓인지요 넌블럭킹 소켓인지요?

환경은 윈도우즈 NT 커널입니다. 아마 BSD TCP/IP Stack 코드를 사용했으니 리눅스와 같은 결과일거라 추측됩니다.

lovemyin의 이미지

소켓을 생성하고 사용자는 blocking를 Non-blocking 모드로ioctl()를 통해서 변경할 수 있습니다.
이건 당연히 아실테고...
그 소켓을 이용하여 listen을 하게되면...
기본적으로 blocking 모드의 소켓이 생성됩니다.
따라서 그 소켓도 Non-blocking 모드로 생성하고 싶으시면 다시 ioctl을 이용해서 소켓 모드를 변화시켜줘야 합니다.
옵션은 FIONBIO 입니다.

/***************************************************
* 가장 심플한 것이 가장 아름다운 것이다.
***************************************************/