논 블로킹 소켓의 장점 1. 블로킹이 없으므로 중도 취소가 가능하다. 2. 생성하는 스레드 개수가 적고 동시에 많은 소켓을 다룰 수 있다. 3. 연산량이 줄어들고 스레드 개수가 적어지므로 호출 스택 메모리도 낭비되지 않는다. 논 블로킹 소켓의 단점 1. 소켓 I/O 함수가 리턴한 코드가 WOULD_BLOCK인 경우 재시도 호출 낭비가 발생한다. 2. 소켓 I/O 함수를 호출할 때 입력하는 데이터 블록에 대한 복사 연산이 발생한다. 3. 재호출 API가 복잡할 수 있다. 구체적으로 1) 사용자 프로세스에서 소켓 버퍼로의 데이터 복사에 대한 비용과 2) send()와 같은 API 함수 호출 비용(송신 버퍼가 꽉 차있는 경우)이 문제가 될 수 있다. Overlapped I/O 혹은 비동기 I/O Overlap..