IOCP 썸네일형 리스트형 IOCP model(Chat Server) - Code SockIOCP.h #pragma once #include #pragma comment(lib,"ws2_32") DWORD WINAPI ThreadCompletion(LPVOID pParam); typedef struct _USERSESSION{ SOCKET hSocket; SOCKADDR_IN clientAddr; }USERSESSION; typedef struct _PERIODATA{ OVERLAPPED ov; WSABUF wsabuf; char buffer[1024]; bool isRecv; }PERIODATA; class SockIOCP { public: SockIOCP(void); ~SockIOCP(void); public: HANDLE m_hIOCP; int m_nThreadCount; SOC.. 더보기 IOCP model(Server) - Idea Overlapped IO 개념: 기본적으로 IO는 동기방식이다. ReadFile()하면 디스크에서 파일이 다 읽어질때까지 CPU는 대기한다. 이게 성능저하를 초래하기 때문에 비동기로 IO를 처리하는 방법인 Overlapped IO이다. 비동기로 여러번 데이터를 전송하면 데이터 전송이 중첩된다는 의미로 Overlapped형태라고 한다. 원리: 비동기 방식으로 WSASend()를 호출하면 이 IO처리의 책임이 쓰레드에서 Device Driver로 넘어간다. 즉 IO처리는 Driver가 담당하고 쓰레드는 다른 작업을 계쏙 진행할 수 있다는 것이다. Device Driver는 IO처리가 끝나면 이를 다시 쓰레드에 알려줘야 하는데 OVERLAPPED 구조체에 있는 이벤트 객체를 통해서 알려주기도 하고 아니면 지정.. 더보기 이전 1 다음