この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 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によってそのスキルを示すことです。例えば、IoTデバイスとアプリ(アプリがブロードキャストまたはマルチキャストを通じて)との間で特定の情報を送信し、関心のあるデバイスが応答してLANデバイスの発見を実現します。もちろん、mDNSはこれよりも強力です。

Consul HTTP APIインターフェース呼び出し
https://www.itsvse.com/thread-9578-1-1.html

【アーキテクチャ】ASP.NET コアはコンスルサービスに基づく非常に利用可能です
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に基づくKey/Valueストアの分散構成を実装しています
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 Linux リリース 7.8.2003(Core)では、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 失敗 (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