더북(TheBook)

Overlapped status 구조체 또한 운영체제에서 백그라운드로 액세스 중입니다. 따라서 중간에 없애거나 내용을 변경해서도 안 됩니다.

p171

▲ 그림 3-17 Overlapped status 구조체와 데이터 블록을 건들지 말아야 하는 구간

 

그러면 Overlapped I/O를 중첩하면 안 되는 것일까요? 꼭 그렇지는 않습니다. 단 중첩해도 되기는 하지만 Overlapped status 객체는 서로 달라야 합니다. 물론 입력한 데이터 블록도 서로 달라야 합니다. 중첩을 하면 두 스레드에서 블록드 I/O를 한 것과 같기 때문입니다.

소켓은 내부에 송수신 버퍼를 가지고 있습니다. 소켓 안 송수신 버퍼의 크기는 여러분 마음대로 변경할 수 있으며, 심지어 0도 가능합니다. 0으로 설정하면 Overlapped I/O는 다르게 작동합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.