select 함수의 기능과 호출 순서 select 함수의 기능 - 배열에 저장된 다수의 파일 디스크립터를 대상으로 다음 과 같은 기능을 수행 1. 수신한 데이터를 지니고 있는 소켓의 존재여부 판단 2. 블로킹되지 않고 데이터의 전송기 가능한 소켓 판별 3. 예외 상황이 발생한 소켓 판별 호출 순서 Step 1 - 관찰의 대상을 묶고, 관찰의 유형을 지정 ▶ 핸들러 설정 ▶ 검사의 범위 지정 ▶ 타임아웃의 설정 Step 2 - 관찰 대상의 변화를 물음 ▶ select함수 호출 Step 3 - 물음에 대한 답을 확인 ▶ 호출 결과 확인 파일 디스크립터의 설정 fd_set형 변수에 select 함수에 전달할 디스크립터의 정보를 확인 int main(void) { fd_set set; FD_ZERO(&set) ..
I/O 멀티 플렉싱 Blocking I/O - 블로킹 모드에서 I/O처리는 작업이 완료될 때까지 기다려야 하므로 비동기적인 작업이 불가능 - 일대일 통신 또는 프로그램이 한가지 작업만 하면 되는 경우 블로킹 모드로 프로그램 작성 Non - Blocking I/O - 일반적인 서버 프로그램들은 다수의 클라이언트의 요청들을 처리해야 함 - 통신 상대가 여럿 또는 여러 작업을 병행하기 위해서는 non-blocking 또는 asynchrounous(비동기)모드를 사용 _ Non - Blocking 모드는 시스템 콜이 성공적으로 실행될 때까자ㅣ 루프를 돌면서 확인(Pollin) Select 함수 select 함수의 기능과 호출 순서 - Step One 에서는 관찰의 대상을 묶고, 관찰의 유형을 지정 - Step ..