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

fhan님의 프로필 이미지
fhan

작성한 질문수

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

Completion Port 모델

클라이언트 소켓에 질문있습니다.

작성

·

238

0

예시코드처럼 클라이언트 소켓은 논블로킹으로 설정해주고 서버 소켓은 블로킹인 상황에서 서버소켓으로 accept해줘서 만든 서버쪽의 클라이언트 소켓은 논블로킹 소켓이 되는 건가요?

답변 1

0

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

클라/서버 둘다 상대방이 무엇으로 동작하는진 알 수도 없고 관심도 없습니다.
서버에서 소켓이 논블로킹인 이유는 소켓 설정을 그렇게 했기 때문입니다.

fhan님의 프로필 이미지
fhan
질문자

클라이언트쪽에서는

SOCKET clientSocket = ::socket(AF_INET, SOCK_STREAM, 0);

if (clientSocket == INVALID_SOCKET)

return 0;

u_long on = 1;

if (::ioctlsocket(clientSocket, FIONBIO, &on) == INVALID_SOCKET)//이부분

return 0;

클라이언트 소켓을 논블로킹쓰겠다고 설정하는 부분이있는데

서버쪽에서 

SOCKET clientSocket = ::accept(listenSocket, (SOCKADDR*)&clientAddr, &addrLen);

clientSocket 을 논블로킹으로쓰겠다고 설정하는 부분이 없어서 클라이언트쪽에서 설정한것이 그대로 유지가 되는 건가 해서 질문드렸습니다.

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

ListenSocket 옵션도 영향을 줍니다

fhan님의 프로필 이미지
fhan

작성한 질문수

질문하기