> ## 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.

# Comunicación de malla de juego: diferencias entre GDK y XDK

> Diferencias entre la comunicación de malla de juego en el Microsoft Game Development Kit y el Kit de desarrollo de software de XBOX One

Secure Sockets y XBOX Integrated Multiplayer (XIM) ya no están disponibles en el Microsoft Game Development Kit (GDK). En su lugar, los títulos del Microsoft Game Development Kit (GDK) pueden usar los siguientes reemplazos.

* Azure PlayFab Party
  Para la comunicación de cliente a cliente, se recomienda que los títulos usen las API de [PlayFab Party](/build/console-features/networking/game-mesh/playfab-party-intro-networking). Proporcionan una funcionalidad similar a la de Secure Sockets en el Kit de desarrollo de software de XBOX One. Estas API también proporcionan comunicación segura, recorrido de traducción de direcciones de red (NAT) mediante retransmisores de comunicación, y funcionalidad de chat de voz y texto.
* Datagram Transport Layer Security (DTLS)
  Los títulos también pueden optar por cifrar las cargas de sus paquetes mediante DTLS. Los títulos pueden implementar esto a través de las API de `OpenSSL` o `Bcrypt`, o usar middleware que encapsule dicha implementación. Toda la comunicación, independientemente del contenido, debe cifrarse y autenticarse a través de los servicios del título. Para obtener más detalles sobre los requisitos de esta solución, consulte [Comunicación segura del juego para títulos del Microsoft Game Development Kit](https://learn.microsoft.com/gaming/gdk/docs/gdk-dev/game-principles/security/communication-security/communication-security-impl/gc-secure-communication-impl).

## Comunicación del título entre las versiones del título del Microsoft Game Development Kit (GDK) y del Kit de desarrollo de software de XBOX One

Se recomienda que los títulos usen el GDK para todo el hardware de consolas XBOX. Esto permite el uso de una implementación de red unificada. En determinados escenarios, es posible que un título aún quiera admitir la comunicación de red entre una versión del título del Kit de desarrollo de software de XBOX One y la del GDK.

Para este escenario, los títulos del Kit de desarrollo de software de XBOX One no pueden usar las API de Secure Sockets porque no son compatibles a nivel de red con las API de Azure PlayFab Party en el GDK. Lo mismo se aplica a las API de XIM que se compilaron sobre la funcionalidad de Secure Sockets.

Los títulos que usaban Secure Sockets o XIM en la versión del título del Kit de desarrollo de software de XBOX One deben actualizar la pila de red del título a la comunicación de Azure PlayFab Party o DTLS. Recomendamos Azure PlayFab Party como la solución para toda la comunicación de cliente a cliente. Azure PlayFab Party también simplifica la funcionalidad de chat de voz y texto.

Los títulos que usan servidores dedicados o servidores de retransmisión con la versión del título del Kit de desarrollo de software de XBOX One pueden hacer lo mismo para habilitar la comunicación de red con la versión del título del GDK. Todos los protocolos de comunicación deben estar siempre autenticados, protegidos y cumplir los procedimientos recomendados de seguridad.

## Inicialización de la red

En el Microsoft Game Development Kit (GDK), su título se inicia lo antes posible durante el proceso de arranque del Game OS. Puede empezar a cargar recursos desde el disco duro y comenzar a inicializar la pila de gráficos. Esto significa que su código se ejecuta antes de que los servicios de red se hayan iniciado, lo que da lugar a un período de tiempo en el que no es seguro usar las API de red de Win32. Definimos este período de tiempo como el período de *inicialización de la red*, después del cual la red se considera inicializada. La inicialización de la red suele tardar unos segundos, lo que puede resultar muy perceptible en su código.

La inicialización de la red en los títulos ERA de XBOX One detenía de forma implícita y arbitraria API de red que, de otro modo, eran seguras en tiempo real, como `WSAStartup` o `bind`. En el Microsoft Game Development Kit (GDK), la inicialización de la red es ahora un concepto explícito con el que debe interactuar para usar cualquier API de red o de seguridad de Win32.

Los títulos del Microsoft Game Development Kit (GDK) deben esperar hasta que el valor booleano `XNetworkingConnectivityHint::networkInitialized` esté establecido en `true` antes de llamar a cualquier API de red en `Winsock`, `WinHTTP`, `IP Helper`, `BCrypt`, `WinCrypt`, `Schannel` o cualquier otra API de red de Win32. Llamar a cualquiera de estas API antes de que la red esté inicializada da lugar a un comportamiento indeterminado que puede llegar a incluir bloqueos aleatorios del proceso.

Además, este mismo concepto se aplica en todos los ciclos de suspensión/reanudación. Al suspender, los títulos del Microsoft Game Development Kit (GDK) deben cerrar todos los identificadores de red y de seguridad. Los títulos del Microsoft Game Development Kit (GDK) deben tratar entonces el controlador de reanudación igual que el inicio inicial del título desde el punto de vista de la red y volver a esperar a que la red se inicialice.

Para obtener más información, incluidos ejemplos de código que muestran cómo esperar a la inicialización de la red, consulte [Inicialización y conectividad de la red](/build/console-features/networking/initialization-connectivity-networking).

## Comportamiento de puertos

En los títulos ERA de XBOX One, se predefinía cada flujo de socket que realizaba el título en el manifiesto de red. En el Microsoft Game Development Kit (GDK), el manifiesto se ha eliminado. Los puertos en las consolas XBOX One ahora se comportan de la misma manera que en un PC con Windows: se llama a `bind` en el puerto que se desee, y ese puerto permite todo el tráfico saliente y el tráfico entrante solicitado tanto en el Protocolo de control de transmisión (TCP) como en el Protocolo de datagramas de usuario (UDP). El tráfico entrante no solicitado de UDP y TCP se bloquea. Esto significa que ya no se permiten las topologías de red de punto a punto con TCP. Los títulos del Microsoft Game Development Kit (GDK) deben usar UDP para sus flujos de juego.

Los títulos del Microsoft Game Development Kit (GDK) ahora también tienen acceso directo al puerto UDP multijugador local preferido. Este puerto representa el mejor puerto para sus pares y servidores que la plataforma puede ofrecer, ya que está respaldado por la solución de problemas y la configuración del usuario. Se recomienda encarecidamente que ajuste su tráfico multijugador y de voz para usar este puerto con el fin de mejorar sus tasas generales de éxito de conectividad.

Para obtener más detalles sobre el comportamiento de puertos, consulte [Comportamiento de puertos de consolas XBOX](/build/console-features/networking/game-mesh/xbox-console-port-behavior) y [Puerto UDP multijugador preferido](/build/console-features/networking/game-mesh/preferred-local-udp-multiplayer-port-networking).

## Consulte también

[Inicialización y conectividad de la red](/build/console-features/networking/initialization-connectivity-networking)

[Comunicación segura del juego para títulos del Microsoft Game Development Kit](https://learn.microsoft.com/gaming/gdk/docs/gdk-dev/game-principles/security/communication-security/communication-security-impl/gc-secure-communication-impl).

[HTTP y sockets web](/build/console-features/networking/web-requests/http-networking)

[Sockets de Windows](/build/console-features/networking/game-mesh/winsock-intro-networking)

[Introducción a Game Chat 2](/services/xbox-services/multiplayer/chat/game-chat2/game-chat-2-intro)

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

[Introducción a las API de XBOX Live](/services/xbox-services/fundamentals/xbox-services-api/live-gs-xbl-apis)

[http\_call\_c](/reference/live/xsapi-c/http_call_c/http_call_c_members)

[Puerto UDP multijugador preferido](/build/console-features/networking/game-mesh/preferred-local-udp-multiplayer-port-networking)


## Related topics

- [Diferencias de las solicitudes web entre GDK y XDK](/es/build/console-features/networking/xdk-migration/xdk-migration-web-requests-networking.md)
- [Invitaciones multijugador entre versiones de título de XDK y GDK](/es/services/xbox-services/multiplayer/invites/concepts/live-multiplayer-xdkinvites.md)
- [Información general de la guía de portabilidad de Steam](/es/build/steam-porting-guide/overview.md)
- [Guías de migración del Kit de desarrollo de software de XBOX One](/es/build/console-features/networking/xdk-migration/xdk-migration-toc.md)
- [Migración de las redes del XDK al GDK de XBOX](/es/build/console-features/networking/xdk-migration/index.md)
