1. Blocking과 Nonblocking - Blocking socket : socket()으로 생성되는 socket은 기본적으로 blocking socket. block 될수 있는 system call 호출 시 block 될 수 있음 Blocking 상태일경우 어떤 작업도 실행하지 않는다. 이러한 단점을 보완하기 위해, Thread를 사용하거나 이벤트를 이용한다. - Nonblocking socket : fcntl() 을 사용하여 Nonblocking socket로 변경 가능. system call 사용시 block 되는 상황이면 -1 리턴. errno 가 EWOULDBLOCK 또는 EAGAIN으로 설정된다. 비동기 소켓은 읽고 쓰는 시점을 알수 없다. 2. Nonblocking socket 생성 ..
Socket Blocking과 NonBlocking, 동기전송(synchronous)과 비동기전송(asynchronous)
1. Blocking과 Nonblocking - Blocking socket : socket()으로 생성되는 socket은 기본적으로 blocking socket. block 될수 있는 system call 호출 시 block 될 수 있음 Blocking 상태일경우 어떤 작업도 실행하지 않는다. 이러한 단점을 보완하기 위해, Thread를 사용하거나 이벤트를 이용한다. - Nonblocking socket : fcntl() 을 사용하여 Nonblocking socket로 변경 가능. system call 사용시 block 되는 상황이면 -1 리턴. errno 가 EWOULDBLOCK 또는 EAGAIN으로 설정된다. 비동기 소켓은 읽고 쓰는 시점을 알수 없다. 2. Nonblocking socket 생성 ..
2021.06.23