• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

SocketAsyncEventArgs에 대해 질문드립니다

22.01.14 18:27 작성 조회수 218

0

안녕하세요 강사님

질좋은 강의 제공해주셔서 항상 감사합니다.

저가 질문드릴거는 SocketAsyncEventArgs와 관련된 부분입니다.

(SocketAsyncEventArgs를 소켓처리를 지원하기 위한 클래스라고 이해하고 있습니다.)

질문은 두가지 입니다.

1. args.Completed라는 것이 정확히 어떤 동작을 완료했을 때 발생하는지에 대한 것입니다. 이 후 강의를 보면 send와 receive에서도 args.Completed라는 것을 쓰는데, args.Completed가 의미하는게 클라이언트에서 conncet를 요청한 상황인지, 클라이언트에서 데이터를 보내거나 받는 상황인지 어떻게 구별하는건가요?

2. SocketAsyncEventArgs와 Socket의 관계가 어떻게 되는지 궁금합니다. SocketAsyncEventArgs이 어떤 소켓을 지원하는지 어떻게 알 수 있나요?

RegisterAccept함수에서 _listenSocket.AcceptAsync(args)를 해주었기 떄문에, args는 _listenSocket 소켓의 소켓처리를 지원하는 클래스라고 생각하면 되나요? 그렇다면 RegisterAccept함수가 시행되기전인 Init함수에서 args가 어떤 소켓을 지원하는지는 알 수 없는 상태인건가요?

답변 1

답변을 작성해보세요.

0

1.

호출한 함수마다 Completed 상황이 다릅니다.
ex) Send라면 Send 완료가 Completed겠죠.

2.
질문이 좀 애매한데,
[어떤 소켓을 지원한다는 것]이 어떤 의미인지 잘 모르겠습니다.
Accept/Recv/Send/Disconnect 각기 네트워크 함수를 호출할 때
필요한 인자만 세팅해서 넘겨주면 되는데
그 넘겨주는 방식을 SocketAsyncEventArgs로 넘겨준다고 생각하시면 됩니다.

그리고 이런 함수 관련 질문은 꼭
MSDN을 읽어보시는 습관을 기르시면 도움이 됩니다.