mDNS är Multicast DNS, vilket främst gör det möjligt för värdar i LAN:et att upptäcka och kommunicera med varandra utan en traditionell DNS-server, och porten som används är5353, följ DNS-protokollet och använd den befintliga DNS-informationsstrukturen, syntaxen och resursposttyperna. Och ingen ny åtgärdskod eller svarskod specificeras. I LAN:et måste enheten och enheten känna till varandras IP-adress innan de kommunicerar med varandra, i de flesta fall är enhetens IP inte en statisk IP-adress, utan en dynamiskt tilldelad IP-adress via DHCP-protokollet, hur man upptäcker enheten är att visa dess färdigheter via MDNS, till exempel: nu skickar kommunikationen mellan Internet of Things-enheten och appen, antingen via broadcasting eller via multicast, specifik information, den intresserade enheten svarar, för att uppnå upptäckt av LAN-enheter, naturligtvis är mDNS kraftfullare än så.
Tjänsteregistrering
Skapa först ett nytt .NET Core 3.1-projekt och använd nuget-kommandot för att referera till följande paket:
Det aktuella tjänstenamnet och adressen upptäcks genom sändning, med följande kod:
Tjänsteupptäckt
Tjänsteupptäckt, som vi kan uppnå genom .NET/C#-kod, är följande:
Du kan också aktivera tjänsteupptäckt för att ta emot alla sändningar, koden är följande:
Server: CentOS Linux release 7.8.2003 (Core), genom att installera avahi och avahi-tools kan tjänsten också upptäckas, installationskommandot är följande:
avahi-daemon är en tjänstedaemon som körs på ett Linux-operativsystem och implementerar en uppslagning för en nätverksbaserad Zeroconf-tjänst på en klientdator. Denna tjänst kan implementera DNS-tjänstupptäckt och DNS-multicast-specifikationer för Zeroconf-nätverket. Användarprogrammet tar emot notiser om upptäckta nätverkstjänster och resurser via Linux D-Bus-meddelanden. Denna daemon arbetar med att cachelagra användarprogramsvar för att hjälpa till att minska nätverkstrafiken som uppstår från svar. Kör avahi-daemon.service-tjänsten med följande kommando:
Du kan använda avahi-browse-kommandot efter att ha installerat avahi-tools.
Du kan se alla MDNS-tjänster i LAN:et med följande kommando:
För att fråga en specificerad tjänst är kommandot följande:
Om du stänger .NET Core-applikationen och frågar tjänsten på en annan server rapporteras följande fel:
+ eth0 IPv4-test _itsvse_discovery._tcp lokalt Misslyckades med att lösa tjänstens 'test' av typen '_itsvse_discovery._tcp' i domänen 'local': Timeout uppnådd
Bifogat är källkoden:
Turister, om ni vill se det dolda innehållet i detta inlägg, snälla Svar
(Slut)
|