> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# XBOX 콘솔 포트 동작

> XBOX 콘솔 포트 동작

이 항목에서는 XBOX 콘솔 포트 동작을 설명합니다.

## 포트 규칙

* 선호 로컬 UDP(User Datagram Protocol) 멀티플레이어 포트를 제외하고, 타이틀이 바인딩할 수 있는 모든 XBOX 콘솔 포트는 기본 방화벽이 있는 PC 동작과 일치하는 동작을 갖습니다. 이러한 포트는 모든 아웃바운드 TCP(전송 제어 프로토콜) 및 UDP 트래픽을 허용하지만 요청되지 않은 인바운드 UDP 및 TCP 패킷은 차단합니다.

* 선호 로컬 UDP 멀티플레이어 포트는 다른 포트와 동일한 방식으로 동작하지만 요청되지 않은 인바운드 UDP 패킷을 허용합니다. TCP는 사용할 수 없습니다.

* Microsoft Game Development Kit(GDK) 타이틀에서 P2P(피어 투 피어)에는 선호 멀티플레이어 포트의 UDP를 사용해야 합니다. 또한 방화벽 및 NAT 펀칭을 수행해야 합니다.

**팁**: [PlayFab Party](/build/console-features/networking/game-mesh/playfab-party-intro-networking)는 이 기능을 자동으로 처리하는 P2P 네트워크 토폴로지를 제공합니다. 또는 자체 구현을 위한 시작점으로 [STUN](https://tools.ietf.org/html/rfc5389) 및 [ICE](https://tools.ietf.org/html/rfc8445)에 대한 RFC를 참조하세요.

## 포트 가용성/예약 포트

타이틀은 바인딩할 수 있는 사용 가능한 포트를 사용할 수 있습니다.

포트가 이미 사용 중인 경우 [bind](https://learn.microsoft.com/windows/desktop/api/winsock/nf-winsock-bind) 함수는 PC에서와 마찬가지로 `E_ADDRINUSE`를 반환합니다.

타이틀에서 사용할 수 없는 여러 포트가 있습니다. [예약 포트 목록](/build/console-features/networking/reserved-ports-networking)은 시스템에서 예약한 현재 포트 집합을 보여줍니다.

Microsoft Game Development Kit(GDK) 타이틀이 사전에 포트를 예약할 수 있는 방법은 없습니다. Microsoft Game Development Kit(GDK) 타이틀이 바인딩을 시도하는 시점에 어떤 포트든 이미 사용 중일 수 있습니다. 이러한 포트 충돌이 발생할 때를 위한 적절한 폴백 및 재시도 로직이 필요합니다.

이에 대한 유일한 예외는 [선호 로컬 UDP 멀티플레이어 포트](/build/console-features/networking/game-mesh/preferred-local-udp-multiplayer-port-networking)로, 타이틀용으로 예약되어 있으며 항상 사용 가능함이 보장됩니다.

## 개발 포트

개발 중에는 도구 및 디버깅 흐름을 지원하기 위해 요청되지 않은 인바운드 TCP 및 UDP 패킷을 허용하는 것이 유용할 수 있습니다. Microsoft Game Development Kit(GDK) 타이틀에서 이 용도로 사용하려는 포트는 *MicrosoftGame.config* 파일의 `DevelopmentOnly` 노드 아래에 지정해야 합니다. 원하는 만큼의 포트를 지정할 수 있습니다. 타이틀 내에서 포트를 사용하는 방식은 다른 포트와 동일합니다. 개발 포트는 개발 키트에서만 이 특별한 동작을 하며, 리테일 콘솔에서는 기본 동작으로 되돌아가 요청되지 않은 인바운드 패킷을 차단합니다. 다음 예제는 *MicrosoftGame.config*에서 포트 `4600`과 `4601`을 개발 포트로 표시하는 방법을 보여줍니다.

```xml theme={null}

<?xml version="1.0" encoding="utf-8"?>
<Game configVersion="1">

  ...

  <DevelopmentOnly>
    <DebugNetworkPortList>
      <DebugNetworkPort>4600</DebugNetworkPort>
      <DebugNetworkPort>4601</DebugNetworkPort>
    </DebugNetworkPortList>
  </DevelopmentOnly>
</Game>

```

<Note>*MicrosoftGame.config*의 `DebugNetworkPortList`를 변경한 후에는 타이틀을 다시 배포하는 것 외에도 [xbapp applyconfig](/tools/tools-console/commandlinetools/xbapp#xbapp_applyconfig)를 실행해야 변경 사항이 적용됩니다.</Note>

## 함께 보기

* [XBOX 예약 포트 및 방화벽 예외](/build/console-features/networking/reserved-ports-networking)

* [PC 포트 동작](/build/console-features/networking/game-mesh/pc-port-behavior)

* [Windows Sockets 2(Winsock)](https://learn.microsoft.com/windows/desktop/WinSock/windows-sockets-start-page-2)

* [선호 UDP 멀티플레이어 포트](/build/console-features/networking/game-mesh/preferred-local-udp-multiplayer-port-networking)

* [PlayFab Party](/build/console-features/networking/game-mesh/playfab-party-intro-networking)


## Related topics

- [PC 포트 동작](/ko/build/console-features/networking/game-mesh/pc-port-behavior.md)
- [GDK의 Windows Sockets 소개](/ko/build/console-features/networking/game-mesh/winsock-intro-networking.md)
- [게임 메시 통신: GDK와 XDK의 차이점](/ko/build/console-features/networking/xdk-migration/xdk-migration-game-mesh-networking.md)
- [XBOX 타이틀을 위한 Game Mesh 네트워킹](/ko/build/console-features/networking/game-mesh/index.md)
- [XBOX 예약 포트](/ko/build/console-features/networking/reserved-ports-networking.md)
