IOCP2 환형큐 #pragma once #include "CircularQueue.h" CircularQueue::CircularQueue(void): front(0), rear(0){queue.reserve(Queue_Max);} CircularQueue::~CircularQueue(void){} //큐에 숫자를 추가 하는 함수//intput = 큐에 저장될 수bool CircularQueue::enqueue(char* input){if(((rear + 1) % Queue_Max) != front) //tail 인텍스 + 1과 head인덱스 값이 같으면 큐가 찼음{//큐에 삽입후 tail인덱스 증가strcpy_s(queue[rear++].str, input);rear = rear % Queue_Max;return tr.. 2014. 9. 17. IOCP 구현 IOCP구현Completion Port 오브젝트 생성(소켓과 오브젝트 연결)HANDLE CreateIoCompletionPort()서버의 리슨소켓 / 각클라이언트의 소켓이 생성될때 오브젝트 생성보통 CPU의 2배수로 WorkerThread 생성루프를 돌면서 Completion Queue를 계속호출Completion Queue의 Completion Packet확인발생한 IO를 가져오기BOOL GetQueuedCompletionStatus()Overlapped 구조체를 통해 IO_Read / IO_Write 를 구분 2013. 5. 22. 이전 1 다음