mDNS é Multicast DNS, que principalmente permite que hosts na LAN se descubram e comuniquem entre si sem um servidor DNS tradicional, e a porta usada é5353, siga o protocolo DNS e use a estrutura de informação, sintaxe e tipos de registros de recursos existentes do DNS. E nenhum novo código de ação ou código de resposta é especificado. Na LAN, o dispositivo e o dispositivo precisam conhecer o endereço IP um do outro antes de se comunicar; na maioria dos casos, o IP do dispositivo não é um endereço IP estático, mas sim um endereço IP atribuído dinamicamente pelo protocolo DHCP, como descobrir o dispositivo é mostrar suas habilidades por MDNS, por exemplo: agora a comunicação entre o dispositivo da Internet das Coisas e o app, seja o app por radiodifusão ou multicast, envia alguma informação específica, o dispositivo interessado responde para descobrir dispositivos LAN, claro, o mDNS é mais poderoso do que isso.
Registro de serviço
Primeiro, crie um novo projeto .NET Core 3.1 e use o comando nuget para referenciar o seguinte pacote:
O nome e endereço atuais do serviço são descobertos por radiodifusão, com o seguinte código:
Descoberta de Serviços
A descoberta de serviços, que podemos realizar por meio de código .NET/C#, é a seguinte:
Você também pode ativar a descoberta de serviços para receber todas as transmissões, o código é o seguinte:
Servidor: CentOS Linux release 7.8.2003 (Core), instalando as ferramentas avahi e avahi-tools, o serviço também pode ser descoberto, o comando de instalação é o seguinte:
avahi-daemon é um daemon de serviço que roda em um sistema operacional Linux e implementa uma busca por um serviço Zeroconf baseado em rede em uma máquina cliente. Esse serviço pode implementar especificações de descoberta de serviços DNS e multicast DNS para a rede Zeroconf. O programa do usuário recebe notificações de serviços e recursos de rede descobertos por meio de mensagens Linux D-Bus. Esse daemon funciona com cache de respostas de programas de usuários para ajudar a reduzir o tráfego de rede resultante das respostas. Execute o serviço avahi-daemon.service com o seguinte comando:
Você pode usar o comando avahi-browse após instalar o avahi-tools.
Você pode visualizar todos os serviços MDNS na LAN com o seguinte comando:
Para consultar um serviço especificado, o comando é o seguinte:
Se você fechar a aplicação .NET Core e consultar o serviço em outro servidor, o seguinte erro será reportado:
+ eth0 IPv4 teste _itsvse_discovery._tcp local Não foi possível resolver o 'teste' do serviço do tipo '_itsvse_discovery._tcp' no domínio 'local': Tempo limite atingido
Anexado está o código-fonte:
Turistas, se quiserem ver o conteúdo oculto deste post, por favor Resposta
(Fim)
|