Overlapped 입출력
하나의 쓰레드 내에서 동시에 여러개의 입출력을 진행
WSASocket사용
WSA_FLAG_OVERLAPPED 플래그로 Overlapped IO기능
기존 recv/send의 개선 -> WSASend, WSARecv 로 사용
Accept 및 Recv 이후 초기 Recv 동작
전송과 수신의 과정으 ㄹ완료하지 않음
데이터를 각각 소켓의 Overlapped 구조 버퍼에 복사
전송과 수신을 백그라운드 동작
Non 블러킹 비동기적으로 IO 처리
멀티로 IO요청이 가능함
버퍼링 오버헤드가 줄어든다.
2. Callback 방식
Overlapped 구조체에 CompletionFunction을 지정하여 Callback
WsARecv / WSASend 함수 호출이 완료되었을 때 지정한 Callback 함수 호출
해당 Callback 함수에서 Recv/Send 처리
처리가 완료되었다면 초기 Recv
3. Overlapped Callback 장단점
속도가 빠르다 (완료후 바로 함수 처리)
callback 은 하나의 Calling Thread에서 처리하므로 일정 수준 이상에서 성능 향상 미미
'네트워크' 카테고리의 다른 글
라우팅 (0) | 2014.02.12 |
---|---|
congestive collapse 대충 컨제스티브 컬랩스 (0) | 2014.02.11 |
IOCP 구현 (0) | 2013.05.22 |
WSAAsyncSelect 사용하기 (0) | 2013.05.14 |
채팅프로그램 메신저 소스 (0) | 2013.05.14 |