- 블로킹: XNetworkingQueryPreferredLocalUdpMultiplayerPort
- 비동기: XNetworkingQueryPreferredLocalUdpMultiplayerPortAsync
- 알림 기반: XNetworkingRegisterPreferredLocalUdpMultiplayerPortChanged
INADDR_ANY/in6addr_any 주소에 바인딩해야 합니다.
소켓 실패 처리
반환된 포트를 사용하여 특정 서버 또는 피어와 성공적인 소켓 연결을 설정할 수 있다는 보장은 없습니다. 일반적인 타이틀 재시도 및 폴백 로직이 수행되어야 합니다. 소켓이 닫히고 다시 열릴 때마다 포트는 시간이 지남에 따라 변경될 수 있으므로, 타이틀은 가장 최신의 선호 로컬 UDP 멀티플레이어 포트를 다시 쿼리해야 합니다.네트워크 초기화
XNetworkingQueryPreferredLocalUdpMultiplayerPort API의 세 가지(블로킹, 비동기, 알림 기반) 변형 모두 타이틀 시작 및 재개 시 네트워크가 초기화될 때까지 완료/알림을 블로킹하거나 지연시킵니다. 네트워크 초기화 상태 감지 개요에 따라 별도로 네트워크 초기화를 기다리거나, 이러한 API를 호출하고 반환될 때까지 기다릴 수 있습니다.
일시 중지 및 재개
다른 소켓과 마찬가지로, 선호 로컬 UDP 멀티플레이어 포트에 바인딩된 소켓은 일시 중지 시 닫고, 네트워크 초기화를 기다린 후 재개 시 다시 만들어야 합니다.RegisterAppStateChangeNotification을 통해 일시 중지 및 재개 이벤트에 등록해야 합니다. 재개 시 선호 로컬 UDP 멀티플레이어 포트가 변경되었다고 가정하고, 선호 로컬 UDP 멀티플레이어 포트의 변경을 수신하거나 새 소켓을 만들 때 다시 쿼리해야 합니다. WinSock 일시 중지 및 재개 처리에 대한 자세한 내용은 Winsock의 일시 중지 및 재개를 참조하세요.
선호 로컬 UDP 멀티플레이어 포트의 변경
타이틀은 XNetworkingRegisterPreferredLocalUdpMultiplayerPortChanged API를 사용하여 선호 로컬 UDP 멀티플레이어 포트의 변경을 수신할 수 있습니다. 타이틀이 실행 중일 때 선호 로컬 UDP 멀티플레이어 포트가 변경되지 않도록 모든 노력이 이루어집니다. 그러나 사용자의 외부 네트워크 조건이 변경되어 기존 소켓 흐름을 무효화함에 따라 포트가 변경되는 것을 피할 수 없는 경우가 있습니다. 네트워크 연결 수준이 변경되거나 타이틀의 일시 중지/재개 주기의 일부로 포트가 변경될 가능성이 특히 높습니다. 선호 로컬 UDP 멀티플레이어 포트가 변경되면 이전 선호 포트에서 향후 피어로부터의 추가 인바운드 연결이 차단될 수 있습니다. 이로 인해 소켓 계층에서 실패가 발생하지 않을 수도 있습니다. 그러나 타이틀은 결국 이전 선호 포트에 바인딩된 소켓에서 패킷 수신을 중지할 수 있습니다. 기존 피어와의 패킷 송수신은 계속 작동할 수 있습니다. 선호 로컬 UDP 멀티플레이어 포트 변경에 대한 알림이 진행 중인 게임 세션에 치명적이지 않을 수 있습니다. 변경 알림이 발생하면 타이틀은 새 선호 포트에 바인딩된 새 소켓으로 마이그레이션해야 합니다. 이 마이그레이션은 기존 게임플레이를 중단시키지 않고 가장 빠른 기회에 수행되어야 합니다. 연결 손실을 감지하고 소켓 연결을 재시도하려면 타이틀은 항상 가장 최근의 선호 포트를 사용해야 합니다.선호 로컬 UDP 멀티플레이어 포트의 변경 테스트
다음 단계를 사용하여 선호 로컬 UDP 멀티플레이어 포트를 변경합니다.- 게임이 실행되는 동안 XBOX Guide를 엽니다. Settings 앱으로 이동합니다.
- General 탭에서 Network settings를 선택합니다.
- Advanced settings를 선택한 다음 Alternate port selection을 선택합니다.
- 포트 선택을 Manual로 설정합니다. 포트를 선택하려면 드롭다운 메뉴를 사용합니다.
- 포트 선택은 즉시 적용되며 타이틀에 해당 알림이 전달됩니다.
- 테스트가 완료되면 포트 동작을 기본값으로 되돌리려면 포트 선택을 Automatic으로 다시 설정합니다.
Settings 앱에 있는 동안 타이틀은 제약되지만 여전히 실행되며 타이틀이 보이지 않더라도 포트 변경 알림을 즉시 받습니다. Settings 앱을 10분 이상 열어두고 타이틀로 다시 전환하지 않으면 타이틀이 일시 중지됩니다.
보안
선호 로컬 UDP 멀티플레이어 포트에 바인딩된 소켓은 다른 소켓과 동일하게 동작합니다. 특히 이 소켓은 추가 보안을 제공하지 않습니다. 타이틀은 통신 보안 모범 사례에 지정된 대로 선호 로컬 UDP 멀티플레이어 포트에 바인딩된 소켓 위에서 자체 보안 통신 프로토콜을 사용해야 합니다. 자세한 내용은 통신 보안 개요(NDA topic)를 참조하세요.피어 투 피어
선호 로컬 UDP 멀티플레이어 포트는 피어 투 피어 메시가 구축될 수 있는 가장 잘 알려진 포트를 제공합니다. 사용자의 NAT 계층을 통해 인바운드 연결을 허용하도록 가능한 최상의 방식으로 구성되어 있습니다. 그러나 다음을 포함한 NAT 순회를 수행하는 것은 타이틀의 책임입니다.- NAT 유형 감지
- 디바이스의 공개 IP 주소 및 포트 감지 및 교환
- NAT 뚫기 및 순회
