이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 45439|회답: 2

[출처] .NET Core는 mDNS 서비스 검색 및 등록을 기반으로 합니다

[링크 복사]
2021-8-25 18:36:42에 게시됨 | | | |
mDNS는 멀티캐스트 DNS로, 주로 LAN 내 호스트들이 전통적인 DNS 서버 없이 서로 탐색하고 통신할 수 있도록 하며, 사용되는 포트는 다음과 같습니다5353, DNS 프로토콜을 따르고 기존의 DNS 정보 구조, 문법, 리소스 레코드 유형을 사용합니다. 새로운 액션 코드나 응답 코드도 명시되지 않습니다. LAN에서는 기기와 기기가 통신하기 전에 서로의 IP 주소를 알아야 하며, 대부분의 경우 기기의 IP는 고정 IP가 아니라 DHCP 프로토콜을 통해 동적으로 할당된 IP 주소입니다. 기기를 발견하는 방법은 MDNS를 통해 기기의 기술을 보여주는 것입니다. 예를 들어, 사물인터넷 기기와 앱 간의 통신이 특정 정보를 전송하고, 관심 있는 장치가 응답하여 LAN 기기를 발견합니다. 물론 mDNS는 이보다 더 강력합니다.

Consul HTTP API 인터페이스 호출
https://www.itsvse.com/thread-9578-1-1.html

【아키텍처】ASP.NET 코어는 Consul 서비스를 기반으로 매우 높은 가용성을 자랑합니다
https://www.itsvse.com/thread-9422-1-1.html

아키텍처: ASP.NET Core는 Consul을 기반으로 동적으로 핫 업데이트를 구성합니다
https://www.itsvse.com/thread-9421-1-1.html

[건축]. net/c#은 Consul을 기반으로 한 키/값 저장소의 분산 구성을 구현합니다
https://www.itsvse.com/thread-9420-1-1.html

Windows가 Nacos 2.0.3의 독립 실행형 버전을 구축하다
https://www.itsvse.com/thread-10040-1-1.html


서비스 등록

먼저, 새로운 .NET Core 3.1 프로젝트를 만들고 nuget 명령어를 사용해 다음 패키지를 참조하세요:


현재 서비스 이름과 주소는 방송을 통해 다음 코드로 확인됩니다:



서비스 발견

.NET/C# 코드를 통해 달성할 수 있는 서비스 발견은 다음과 같습니다:

또한 모든 방송을 수신하기 위해 서비스 디스커버리를 활성화할 수 있으며, 코드는 다음과 같습니다:



서버: CentOS 리눅스 릴리스 7.8.2003 (코어), avahi 및 avahi-tools 도구를 설치하면 서비스를 탐색할 수 있으며, 설치 명령은 다음과 같습니다:

avahi-daemon은 Linux 운영체제에서 실행되며 클라이언트 머신에서 네트워크 기반 Zeroconf 서비스에 대한 조회를 구현하는 서비스 데몬입니다. 이 서비스는 Zeroconf 네트워크를 위한 DNS 서비스 탐색과 DNS 멀티캐스트 명세를 구현할 수 있습니다. 사용자 프로그램은 Linux D-Bus 메시징을 통해 발견된 네트워크 서비스와 자원에 대한 알림을 받습니다. 이 데몬은 사용자 프로그램 응답을 캐싱하여 응답으로 인한 네트워크 트래픽을 줄이는 데 도움을 줍니다.
avahi-daemon.service 서비스를 다음 명령어로 실행하세요:



avahi-tools를 설치한 후 avahi-browse 명령어를 사용할 수 있습니다.

LAN 내 모든 MDNS 서비스를 다음 명령어로 확인할 수 있습니다:

지정된 서비스를 쿼리하기 위한 명령은 다음과 같습니다:




.NET Core 애플리케이션을 종료하고 다른 서버에서 서비스를 쿼리하면 다음과 같은 오류가 보고됩니다:

+ eth0 IPv4 테스트 _itsvse_discovery._tcp local
도메인 'local'에서 '_itsvse_discovery._tcp' 타입의 서비스 'test' 해결 실패: 타임아웃 도달


첨부된 소스 코드는 다음과 같습니다:

관광객 여러분, 이 게시물의 숨겨진 내용을 보고 싶으시다면 부탁드립니다회답


(끝)





이전의:Zookeeper 시작 실패 스냅샷은 찾지 못했지만 로그 항목은 있습니다 ...
다음:nginx 접근 문제: connect() to 127.0.0.1:8080 failed (13: permission den...
2021-8-26 15:19:56에 게시됨 |

지나가서 한 번 봐주세요, 공유해 주셔서 감사합니다
 집주인| 2021-10-17 15:40:33에 게시됨 |
CentOS 8에서 avahi-tools를 찾지 못하고 설치할 수 없다면, 다음 명령을 시도해 보세요:

면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com