목록Non-Blocking (2)
Coding Memo
본 포스팅은 인프런에 등록되어 있는 Rockiss 님의 강의를 보고 간단하게 정리한 글입니다. 지난 번에는 WSASelect 모델을 이용해 Socket IO를 처리했었다. Select와 WSASelect는 결국 모두 Select를 활용하는 방법으로 동기 I/O 느낌이 강하게 든다. 이번에는 Overlapped에서 Event와 Callback 함수를 활용한 진짜 소켓 비동기 I/O 모델을 사용해볼 것이다. Overlapped I/O는 Asynchronous(비동기)처리의 Non-blocking 방식의 모델이다. 비동기+논블로킹의 방식은 callback 방식으로 호출을 하면서 callback의 형태로 다시 결과를 받는 방식이다. (Asynchronous) 물론, 이 때 다른 일을 처리할 수 있다.(non-b..
본 포스팅은 인프런에 등록되어 있는 Rockiss 님의 강의를 보고 간단하게 정리한 글입니다. 지금까지 했던 socket은 blocking으로 작동하는 소켓이었다. accept : 접속한 클라이언트가 있을 때 connect : 서버가 접속에 성공했을 때 send, sendto : 요청한 데이터를 sendBuffer에 복사 했을 때 recv, recvfrom : recvBuffer에 도착한 데이터가 존재하고, 이를 유저레벨 buffer에 복사했을때 다음 코드가 실행이 된다. 다시 말해, 위 조건이 실행되거나 에러가 발생할 때까지 다음 코드 실행은 block되는 것이다. 곰곰히 생각해보면 서버를 실행할 때 어떤 송수신이나 connect에 대한 응답을 무한히 대기하여 block된 상태로 있을 수는 없을 것이다..