async 3

#025_Window_Network_비동기 소켓 입출력 모델_IOCP모델

안녕하세요 삽잡이입니다. 이번시간에는 지금까지 배워왔던 모델들의 장단점을 총 종합해서 만들었다고 해도 과언이 아닌, 마지막 모델 IOCP 모델에 대해서 알아보려고 합니다.I/O Completion Port 모델이라고도 부를 수 있습니다. Window 서버로 만들어지는 경우가 많이 없지만,만약 Window 계열로 서버가 만들어 지는 경우의 거의 90% 이상은 IOCP 모델로 만들어진다고 생각하셔도 된다고 합니다. 기존에 Overlapped 모델과는 차이점이 뭘까요?Overlapped 모델 중 Completion Routine를 사용할 경우에는 Thread 하나를 가지고 작업을 진행했었습니다.하지만, 이 작업을 진행하는 쓰레드를 여러대 생성할 수 있을 경우에 그 만큼 동시 작업 처리에 효율성이 생기지요.....

#023_Window_Network_비동기 소켓 입출력 모델_Overlapped 모델 (1)

안녕하세요 삽잡이입니다. 이번 시간에는 비동기 소켓 입출력 모델 중 Overlapped 모델 방식에 대해서 알아보려고 합니다.선 동작을 수행하는 함수들의 종류가 있는 입출력 모델 방식말입니다.이 '선 동작을 수행하는 함수'들은 모두 비동기 함수라고 부릅니다.곧, MS에서는 overlapped 함수라고 부른다 이겁니다. 이 모델 방식에서는 overlapped 구조체를 사용합니다. 첫번째, 두번째 인자는 OS가 사용합니다.두번째 인수는 OS가 얼마나 Read하고 Write했는지에 대한 길이를 저장한다고 생각하시면 됩니다.그리고 이 둘은 우선 사용전 초기화를 해줘야합니다. 어플리케이션에서 사용하는 세번째 네번째 인수를 알아봅시다.Offset은 데이터 입출력을 시작하고자하는 위치를 의미합니다.일반적으로 처음부터..

#022_Window_Network_비동기 소켓 입출력 모델

안녕하세요 삽잡이입니다. 이번시간에는 비동기 입출력 모델에 대해서 알아보려고합니다. 우리는 이전시간까지 쓰레드, Select, WSAAsyncSelect, WSAEventSelect 모델에 대해서 알아봤었습니다.사실, 쓰레드를 제외한 세 모델들은 모두 '비동기'와 관련성이 있는 모델들은 아닙니다. 위에 모델들에서 붙은 WSA는 Window Socket의 2.0 이상 버전에서 만들어 졌음을 명시하는 줄임말입니다.즉, 2.0대 이상의 소켓에서 핵심은 바로 '비동기'입니다.그래서 Window Socket Async를 붙였습니다. 단지 표시를 한 것이지요...기존의 함수들은 비동기 방식의 모델이 없었지요... 2.0 대 부터 만들어졌구요... 아무튼... 2.0 버전 이상부터 만들어진 함수는 WSA가 붙기 때문..