Partilhar via


Multihoming e PGM

Deve ser dada especial atenção aos emissores ou recetores PGM com múltiplas ligações. Esta página descreve as considerações e fornece diretrizes para as melhores práticas de programação.

Remetente PGM multihomed

Quando um aplicativo não consegue especificar uma interface ao chamar a função connect, a primeira interface disponível é usada. Se nenhuma interface estiver disponível, a conexão falha.

Quando um aplicativo especifica uma interface usando a opção de soquete RM_SET_SEND_IF, uma tentativa dede ligação deé feita implicitamente a essa interface usando TCP/IP e falha se o TCP/IP falhar na solicitação de ligação. Se a interface for definida usando RM_SET_SEND_IF várias vezes, apenas a última interface definida com sucesso será aplicada.

O Windows Sockets mantém qual interface está definida e, se essa interface desaparecer, a sessão será desconectada.

Recetor PGM multihomed

Quando um aplicativo não consegue especificar uma interface ao chamar a função listen, a interface padrão é usada. Se nenhuma interface estiver disponível, vinculação falha.

Quando um aplicativo especifica uma ou mais interfaces nas quais escutar, usando RM_ADD_RECEIVE_IF, o Windows Sockets tenta se vincular à interface ou interfaces solicitadas usando TCP/IP. Qualquer erro de TCP/IP faz com que esta solicitação falhe. Ao contrário do caso do remetente PGM, adicionar uma interface de recebimento várias vezes resulta em escutas sendo postadas em todas as interfaces adicionadas com sucesso. Use a opção de soquete RM_DEL_RECEIVE_IF para parar de ouvir em uma interface.

O Windows Sockets não mantém o estado sobre várias interfaces de escuta especificadas e, em vez disso, depende do TCP/IP para fazê-lo. No entanto, quando uma sessão está em andamento, o Windows Sockets rastreia a interface de entrada para essa sessão e, se essa interface desaparecer, o Windows Sockets desconecta a sessão.