- Bloqueante: XNetworkingQueryPreferredLocalUdpMultiplayerPort
- Assíncrona: XNetworkingQueryPreferredLocalUdpMultiplayerPortAsync
- Baseada em notificação: XNetworkingRegisterPreferredLocalUdpMultiplayerPortChanged
INADDR_ANY/in6addr_any.
Tratamento de falhas de soquete
Não há garantia de que a porta retornada possa ser usada para estabelecer uma conexão de soquete bem-sucedida com servidores ou pares específicos. A lógica normal de repetição e fallback do título deve ser executada. Sempre que o soquete for fechado e reaberto, o título deverá consultar novamente a porta multijogador UDP local preferencial mais recente, porque a porta pode mudar com o tempo.Inicialização da rede
As três variantes (bloqueante, assíncrona e baseada em notificação) da APIXNetworkingQueryPreferredLocalUdpMultiplayerPort bloquearão ou atrasarão a conclusão/notificações até que a rede seja inicializada na inicialização do título e na retomada. Você pode aguardar separadamente a inicialização da rede de acordo com a visão geral Detecção do status de inicialização da rede ou fazer uma chamada a essas APIs e aguardar o retorno.
Suspensão e retomada
Assim como qualquer outro soquete, o soquete associado à porta multijogador UDP local preferencial deve ser fechado na suspensão e recriado na retomada, após aguardar a inicialização da rede. Você deve se registrar para receber eventos de suspensão e retomada por meio deRegisterAppStateChangeNotification. Na retomada, você deve presumir que a porta multijogador UDP local preferencial mudou e escutar as alterações nessa porta ou consultá-la novamente ao criar seus novos soquetes. Para obter mais informações sobre o tratamento de suspensão e retomada no WinSock, confira Suspensão e retomada no Winsock.
Alterações na porta multijogador UDP local preferencial
O título pode escutar as alterações na porta multijogador UDP local preferencial usando a API XNetworkingRegisterPreferredLocalUdpMultiplayerPortChanged. Todos os esforços são feitos para garantir que a porta multijogador UDP local preferencial não mude enquanto o título estiver em execução. No entanto, há casos inevitáveis em que a porta mudará devido a alterações nas condições de rede externas do usuário, invalidando quaisquer fluxos de soquete existentes. É especialmente provável que a porta mude quando o nível de conectividade de rede muda ou como parte do ciclo de suspensão/retomada de um título. Quando a porta multijogador UDP local preferencial muda, conexões de entrada adicionais de pares futuros podem ser bloqueadas em qualquer porta preferencial anterior. Isso pode não causar uma falha na camada de soquete. No entanto, o título pode acabar deixando de receber pacotes em qualquer soquete associado a qualquer porta preferencial anterior. Os pacotes enviados de e para pares existentes podem continuar funcionando. Uma notificação sobre uma alteração na porta multijogador UDP local preferencial pode não ser fatal para nenhuma sessão de jogo em andamento. Quando ocorre uma notificação de alteração, o título deve migrar para um novo soquete associado à nova porta preferencial. Essa migração deve acontecer na primeira oportunidade e sem interromper a jogabilidade existente. Para detectar uma perda de conexão e repetir a conexão do soquete, o título deve sempre usar a porta preferencial mais recente.Teste de alterações na porta multijogador UDP local preferencial
Use as etapas a seguir para alterar a porta multijogador UDP local preferencial.- Com o jogo em execução, abra o Guia do XBOX. Acesse o aplicativo Configurações.
- Na guia Geral, selecione Configurações de rede.
- Selecione Configurações avançadas e, em seguida, selecione Seleção de porta alternativa.
- Defina a seleção de porta como Manual. Para selecionar uma porta, use o menu suspenso.
- A seleção de porta entra em vigor imediatamente e gera uma notificação correspondente para o seu título.
- Quando terminar o teste, defina a seleção de porta novamente como Automático para restaurar o comportamento padrão da porta.
Enquanto você está no aplicativo Configurações, seu título fica restrito, mas continua em execução e recebe imediatamente a notificação de alteração de porta, mesmo que não esteja visível. Seu título será suspenso se você deixar o aplicativo Configurações aberto por mais de 10 minutos sem voltar para o título.
Segurança
O soquete associado à porta multijogador UDP local preferencial se comporta como qualquer outro soquete. Em particular, o soquete não fornece nenhuma segurança adicional. O título deve usar seu próprio protocolo de comunicação segura sobre o soquete associado à porta multijogador UDP local preferencial, conforme especificado pelas práticas recomendadas de segurança de comunicação. Confira Visão geral da segurança de comunicação (tópico sob NDA) para obter mais informações.Ponto a ponto
A porta multijogador UDP local preferencial fornece a porta mais conhecida a partir da qual uma malha ponto a ponto pode ser criada. Ela é configurada da melhor maneira possível para permitir conexões de entrada pela camada de NAT do usuário. No entanto, é responsabilidade do título executar a travessia de NAT, incluindo o seguinte.- Detecção do tipo de NAT
- Detecção e troca do endereço IP público e da porta do dispositivo
- Hole punching e travessia de NAT
