인프런 커뮤니티 질문&답변

grallex00님의 프로필 이미지
grallex00

작성한 질문수

[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버

AcceptEx 질문있습니다.

해결된 질문

작성

·

247

0

AcceptEx가 실패가 나는 경우 

즉 , AcceptEx호출 자체가 false가 나고, 이때 GetlastErrror가 WSA_IO_PENDING이 아닌경우나 ,

AcceptEx의 호출로 IOCP 에서 Pending중일때 모종의 이유로 GQCS에서 AcceptEx pending에 대한 실패가 리턴되는경우

listen socket이 close되었거나, 어찌되었든 더이상 유저를 받지못하는 상황일 수 있는데 이럴때 서버에 강제로 CRASH를 내도록 해도 될것같은데, 혹시 이렇게 하면 안될 이유가 있을까요??

(AcceptEx를 호출할때 close된 session 소켓을 전달하는 경우는 없고, AcceptEx의 호출결과로 IOCP 유저접속을 대기중인상태(Pending)일때 session socket이 close되거나 session이 삭제되는 일은 일체 없다고 가정합니다.

물론 listen socket은 닫힐 수 있지만, listensocket이 닫히면, 서버를 유지시켜줄 이유가 없다고 생각되긴 합니다.)

답변 1

0

Rookiss님의 프로필 이미지
Rookiss
지식공유자

에러코드는 실제로 돌려보면 정말 다양하게 나기 때문에
너무 신나게 크래시를 내는건 위험할 수도 있습니다.
그런데 이건 케바케로 다르고
실제로 회사 레거시 코드를 보면 어쩔 땐 크래시 내다가,
예상하지 못한 타이밍에 그 코드가 발동해서 제거하는 경우도 있고 다양합니다.

결론 : 무엇을 하든 본인의 책임이니, 넣어보고 로그를 심어보고 분석해보시기 바랍니다.

grallex00님의 프로필 이미지
grallex00

작성한 질문수

질문하기