• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

IPEndPoint와 listenSocket

21.09.05 02:44 작성 조회수 272

0

지금은 서버와 클라 양쪽에서 IPHostEntry, IPAddress등을 사용해서 IPEndPoint를 만들고 이를 연결하는 식으로 사용하고 있는데

1) EndPoint가 상대의 주소와 포트를 설정하여 목적지?를 설정한다고 봐도 되나요?

1-1) 만약 그렇다면 지금은 컴퓨터 하나로 시험해야 하기에 같은 주소를 사용하므로 IPEndPoint를 만들어서 사용하고 있지만, 실제는 서버에서는 스스로의 주소를 넣어주고, 클라는 알고있는 서버의 주소/포트를 사용해 연결 요청을 했을때 서버가 캐치 하면서 클라의 주소를 받아서 연결이 되는거...겟죠?

1-2) 그때 리스너에서 Socket.RemoteEndPoint을 사용해 클라의 주소를 추출하나요?

1-3) _onAcceptHandler.Invoke(args.AcceptSocket);이 부분에서 Accept된 Socket을 가져와서, 새로 클라의 소켓을 만들어줄 필요없이 이미 (질문1-2)와 같은 일을 하고있는 걸까요?

답변 1

답변을 작성해보세요.

1

1) 네.
1-1) 네 그렇습니다.
1-2) 네 그렇습니다.
1-3) 네 그렇습니다.

다만 나중에 가면 클라->서버 연결할 때 직접적으로 ip주소를 입력하진 않습니다.
만약 특정 IP 주소를 박아버리면,
서버 위치가 바뀌게 되어 IP 주소가 바뀔 때의 처리가 되지 않기 때문이죠.
따라서 보통 도메인 이름 (ex. www.naver.com)을 클라에서 아는 상태로,
해당 도메인의 주소를 DNS 서버로 받아온 다음,
다시 그 아이피 주소를 이용해 접속해야 합니다.