XNetworkingQueryPreferredLocalUdpMultiplayerPort

获取要用于多人游戏流量的首选本地 UDP 端口。

语法

HRESULT XNetworkingQueryPreferredLocalUdpMultiplayerPort(
         uint16_t* preferredLocalUdpMultiplayerPort
)

参数

preferredLocalUdpMultiplayerPort _Out_
类型:uint16_t*

指向作为首选本地 UDP 多人游戏端口的用户数据报协议 (UDP) 端口号(采用主机字节序格式)的指针。

返回值

类型:HRESULT

HRESULT 成功或错误代码。

备注

注意

在时间敏感线程上调用此函数是不安全的。 有关详细信息,请参阅时间敏感线程

返回的首选本地 UDP 多人游戏端口是在后续套接字绑定操作中使用的本地端口;这与远程设备可能用于连接到本地设备的公用端口相反。 该端口仅对于 UDP 流量而不是 TCP 或 HTTP 流量有意义,因为它专门面向多人、实时游戏网络流量。

此端口默认为 UDP 3074,但存在自动回退(当确定该端口不适合于游戏流量时)和手动覆盖(用户可通过 Xbox 网络设置疑难解答来设置)。 此端口的网络行为用于驱动严格、中等和开放的用户可见的 NAT 类型。 该端口由 Xbox 群聊天、Xbox 网络疑难解答、在线 Xbox Live 疑难解答文档和 CSS 疑难解答流使用,并且通常由用户在家庭路由器中手动配置。

返回的端口将已通过 UPnP 在用户的家庭路由器中配置,以便允许传入和传出数据包。

应该将该端口视作和其他每个端口一样,并应将它与 Windows 套接字 (Winsock) API 配合使用。 游戏应该绑定到该端口上的 IPv4 和 IPv6 或使用双堆栈套接字,并且应该绑定到 INADDR_ANY/in6addr_any 地址。

注意

从该函数采用主机 endian 顺序返回该端口。 sockaddr_in::sin_portsockaddr_in6::sin6_port 字段均采样网络字节顺序。 使用 htons 函数在其传递到绑定函数时转换返回的端口的字节顺序。

不保证返回的端口能够用于建立与所需服务器或对等方的成功套接字连接。 应执行任何正常的游戏重试和回退逻辑。

游戏预期应提供安全层以及任何必需的网络地址转换 (NAT) 检测和可能要求的实现遍历。

强烈建议游戏将此端口用于其主要游戏流量套接字流,以便获得具有成功连接的最佳机会。 Microsoft Azure PlayFab Party 库默认使用此端口。 如果你没有明确将 PlayFab Party 库配置为使用其他端口,则请勿直接绑定到首选本地 UDP 多人游戏端口。

要求

头文件:XNetworking.h

库:xgameruntime.lib

支持平台:Windows、Xbox One 系列主机和 Xbox Series 主机

另请参阅

首选的本地 UDP 多人游戏端口网络 API
Windows 套接字 (Winsock)
Microsoft Azure PlayFab Party
XNetworking