작성자 없음
작성자 정보가 삭제된 글입니다.
작성
·
355
0
클라에서 Connector를 통해서 연결시도를 할 때, Connector에게 endPoint를 전달합니다
Connector에서는 socket에 endPoint.AddressFamily를 전달하는데, 제가 생각하는 것은 IP주소 '만' 전달합니다.
뒤에 SocketAsyncEventArgs args 변수를 선언하고
args.RemoteEndPoint에 endPoint를 한 번 더 전달합니다.
socket.ConnectAsync할 때 args를 전달합니다.
헷갈리는 부분은 endPoint를 두번 전달하는 것입니다.
socket에는 IP주소'만' 들어있어서 포트번호를 모르니 args.RemoteEndPoint에 port번호 포함 주소를 다시 준 것 인가요?
답변 1
1
그 부분은 딱히 심오하게 이해하는게 아니고 그냥 그렇습니다.
우리가 endpoint를 알고 있다고 그 주소로 알아서 접속하는게 아니고,
특정 함수를 호출할 때 인자로 넘겨줘야 비로소 그 주소로 접속을 하는 것일겁니다.
C# 네트워크 라이브러리 자체에서
SocketAsyncEvent의 RemoteEndPoint을 채워서
ConnectAsync를 호출하도록 명시하기 때문에 전달을 해준겁니다.