포트 규칙
- 선호 로컬 UDP(User Datagram Protocol) 멀티플레이어 포트를 제외하고, 타이틀이 바인딩할 수 있는 모든 XBOX 콘솔 포트는 기본 방화벽이 있는 PC 동작과 일치하는 동작을 갖습니다. 이러한 포트는 모든 아웃바운드 TCP(전송 제어 프로토콜) 및 UDP 트래픽을 허용하지만 요청되지 않은 인바운드 UDP 및 TCP 패킷은 차단합니다.
- 선호 로컬 UDP 멀티플레이어 포트는 다른 포트와 동일한 방식으로 동작하지만 요청되지 않은 인바운드 UDP 패킷을 허용합니다. TCP는 사용할 수 없습니다.
- Microsoft Game Development Kit(GDK) 타이틀에서 P2P(피어 투 피어)에는 선호 멀티플레이어 포트의 UDP를 사용해야 합니다. 또한 방화벽 및 NAT 펀칭을 수행해야 합니다.
포트 가용성/예약 포트
타이틀은 바인딩할 수 있는 사용 가능한 포트를 사용할 수 있습니다. 포트가 이미 사용 중인 경우 bind 함수는 PC에서와 마찬가지로E_ADDRINUSE를 반환합니다.
타이틀에서 사용할 수 없는 여러 포트가 있습니다. 예약 포트 목록은 시스템에서 예약한 현재 포트 집합을 보여줍니다.
Microsoft Game Development Kit(GDK) 타이틀이 사전에 포트를 예약할 수 있는 방법은 없습니다. Microsoft Game Development Kit(GDK) 타이틀이 바인딩을 시도하는 시점에 어떤 포트든 이미 사용 중일 수 있습니다. 이러한 포트 충돌이 발생할 때를 위한 적절한 폴백 및 재시도 로직이 필요합니다.
이에 대한 유일한 예외는 선호 로컬 UDP 멀티플레이어 포트로, 타이틀용으로 예약되어 있으며 항상 사용 가능함이 보장됩니다.
개발 포트
개발 중에는 도구 및 디버깅 흐름을 지원하기 위해 요청되지 않은 인바운드 TCP 및 UDP 패킷을 허용하는 것이 유용할 수 있습니다. Microsoft Game Development Kit(GDK) 타이틀에서 이 용도로 사용하려는 포트는 MicrosoftGame.config 파일의DevelopmentOnly 노드 아래에 지정해야 합니다. 원하는 만큼의 포트를 지정할 수 있습니다. 타이틀 내에서 포트를 사용하는 방식은 다른 포트와 동일합니다. 개발 포트는 개발 키트에서만 이 특별한 동작을 하며, 리테일 콘솔에서는 기본 동작으로 되돌아가 요청되지 않은 인바운드 패킷을 차단합니다. 다음 예제는 MicrosoftGame.config에서 포트 4600과 4601을 개발 포트로 표시하는 방법을 보여줍니다.
MicrosoftGame.config의
DebugNetworkPortList를 변경한 후에는 타이틀을 다시 배포하는 것 외에도 xbapp applyconfig를 실행해야 변경 사항이 적용됩니다.