앞서 본 BlockSocketOperation() 코드를 논블록 소켓을 사용하는 코드로 바꾸면 다음과 같습니다.
void NonBlockSocketOperation() { s = socket(TCP); ...; s.connect(...); // 논블록 소켓으로 변경 s.SetNonBlocking(true); while (true) { // ➊ r = s.send(dest, data); if (r = = EWOULDBLOCK) { // 블로킹 걸릴 상황이었다. 송신을 안 했다. continue; } if (r = = OK) { // 보내기 성공에 대한 처리 } else { // 보내기 실패에 대한 처리 } // ➋ } }