강의

멘토링

커뮤니티

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

김호찌님의 프로필 이미지
김호찌

작성한 질문수

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버

Listener

Args.AcceptSocket 질문있습니다.

작성

·

480

0

void OnAcceptCompleted(object sender, SocketAsyncEventArgs args)
{   // 낚시대를 끌어올림!
    if(args.SocketError == SocketError.Success)
    {
        _onAcceptHandler.Invoke(args.AcceptSocket); // client 소켓을 던져줄것!
    }
    else
        Console.WriteLine(args.SocketError.ToString());

    RegisterAccept(args); // 다시 낚시대 던지기!
}

제가 궁긍한 부분은 넘겨받은 args의 AcceptSocket 부분인데요

공홈 문서에 따르면 AcceptAsync하기전에 설정해주지 않았다면 새로운 소켓이 만들어져있다고 써져있습니다.

공홈 문서

그런데, 영상에서는 clientSocket을 던져준다고 설명해주셨는데요. 그럼 client로부터 요청이 들어와서 accept 됐을 때

bool pending = _listenSocket.AcceptAsync(args);

AcceptAsync에서 받은 args에 클라이언트에 대한 정보가 들어간다는 것일까요? 아니면 빈 socket 인가요?

답변 1

1

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

빈 소켓이지만, OnAcceptCompleted로 들어서는 순간에는
이미 클라 소켓이 채워져 있겠죠!

김호찌님의 프로필 이미지
김호찌

작성한 질문수

질문하기