IOCP 정리 포스팅은 언제 하지(..) 아무튼 채팅서버를 만들었으니 lib 만드는 작업을 하는데 Accept 에서 막혔다. Accept는 타임아웃 같은게 없다. 고작 이 Accept 하나 때문에 쓰레드를 하나 더 만드는 건 '공부'차원에서도 몹시 좋지 않은 느낌이라 안써봤던 AcceptEx를 써보기로 했다.
참고한 사이트
AcceptEx 풀 예제: http://yongpa.tistory.com/20
구조에 대한 이해: http://bestmin.tistory.com/180
난관을 이래저래 겪었는데...
1. 클라가 접속을 했는데도 GetQueuedCompletionStatus 가 overlapped 주소값을 정상적으로 내뱉질 않음.
-> AcceptEx 의 마지막 인자에는 overlapped 객체의 주소값을 넣어주는데 이 overlapped 객체를 0으로 초기화를 안 함..
2. 소켓을 미리 할당해둔다는 개념 자체가 낯설었다. Accept 함수가 생성해주는거 아니었어ㅠㅠ?
3. 리턴되는 error 값에 관심을 가질 필요가 있다.
지금의 연차에서 공부하는 것들이 대개 '알고 보면 그다지 어렵지 않은' 것들일텐데도 여기까지 오는게 녹록치가 않았다ㅠㅠ.. 그래도 여기저기 흩어져있던 조각들을 한데 모으는 것에 있어선 상당한 도움이 된 것 같음 ''
'스터디 > Server' 카테고리의 다른 글
IOCP - ServerSide (0) | 2016.07.13 |
---|---|
IOCP를 사용한 서버 라이브러리 제작 (0) | 2016.07.09 |
일단 IOCP 채팅서버 만드는 건 끝! (0) | 2016.06.28 |
Overlapped IO 모델 (0) | 2016.05.27 |
Notification IO Model (0) | 2016.04.13 |