강의

멘토링

커뮤니티

Inflearn Community Q&A

ghkddnjstlr1118745's profile image
ghkddnjstlr1118745

asked

[MMORPG Game Development with C++ and Unreal Series] Part 4: Game Server

Completion Port Model

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

Written on

·

302

0

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

MMORPGwindows-servernetwork

Answer 1

0

Rookiss님의 프로필 이미지
Rookiss
Instructor

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

fhan님의 프로필 이미지
fhan
Questioner

클라이언트쪽에서는

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
Instructor

ListenSocket 옵션도 영향을 줍니다

ghkddnjstlr1118745's profile image
ghkddnjstlr1118745

asked

Ask a question