• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

Args.AcceptSocket 질문있습니다.

22.11.03 16:14 작성 조회수 364

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

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