티스토리 뷰

Socket Programming

IOCP Model

열혈허슬러 상추님 2019.09.22 16:38
190712-4 - IOCP 모델

 
비동기 입출력을 쉽게 할 수 있는 객체를 만들었다.
 
// 입출력 완료 포트 생성
HANDLE hcp = CreateIoCompletionPort(
    INVALID_HANDLE_VALUE, NULL, 0, 0);//- 첫 번째 인수가 -1이면 ICOP 오브젝트를 생성
if(hcp == NULL) return -1;
 
 
// 소켓과 입출력 완료 포트 연결
HANDLE hResult = CreateIoCompletionPort((HANDLE)client_sock, hcp,
    (DWORD)client_sock, 0); // 첫 번째 인수가 IOCP인수를 가지면 IOCP와 해당 소켓을 연결한다.
//키=소켓번호 로 설정, 0 = 스레드를 전부 깨운다.
if(hResult == NULL) return -1;
 
 
// 비동기 입출력 완료 기다리기
retval = GetQueuedCompletionStatus(hcp, &cbTransferred,//받은 바이트수
        (LPDWORD)&client_sock,// 키값
       (LPOVERLAPPED *)&ptr, // 오버랩드 구조체 (의 소켓번호랑 키값이 현재코드에선 동일)
       INFINITE
    );//있으면 확인 없으면 블로킹
 
 
 
 

'Socket Programming' 카테고리의 다른 글

IOCP Model  (0) 2019.09.22
Overlapped Model struct  (0) 2019.09.21
WSAEventSelect Model - 2  (0) 2019.09.20
WSAAsyncSelect Model  (0) 2019.09.19
[Socket] SELECT MODEL 네트워크  (0) 2019.09.18
비동기 IO (Overlapped IO)  (0) 2019.09.18
댓글
댓글쓰기 폼