4

.Net リモート処理と通信するクライアント/サーバー アプリケーションがあります。クライアント側の構成を必要とせずに、クライアントがネットワーク上のサーバーを見つけられるようにする必要があります。

私の知る限り、リモーティングでの検出はサポートされていません。クライアントがブロードキャスト メッセージを介してサーバーを見つけることができる UDP ソリューションを実装する準備ができています。

先に進む前に、集合的なSOの知恵を聞きたい. これが最善の方法ですか?他の提案はありますか?

4

5 に答える 5

4

このタイプの機能についてはSSDPとUPnPの両方を検討しましたが、カスタムUDPマルチキャストソリューションを使用することをお勧めします。基本的に、マルチキャストはブロードキャストに非常に似ていますが、マルチキャストグループに参加している(つまり、ブロードキャストを要求している)マシンのみが接続されます。

IMHO、SSDP、UPnPは肥大化しており、リソースの検出が非常に複雑です...しかし、これは標準です。;)

于 2008-10-02T01:01:22.280 に答える
1

必要なのはSimpleServiceDiscoveryProtocolまたはSSDPのようですこれは、Microsoftのユニバーサルプラグアンドプレイのサポートの一部としてWindowsに実装されています。これは業界標準のプロトコルであるため、良い賭けのようです。たとえば、ファイアウォールやその他の問題に対処したい場合、独自のソリューションを展開する代わりに、他の人がこれを理解しているでしょう。

.NETについて話しているので、Windowsを使用していると仮定します。ユニバーサルプラグアンドプレイ(UPnP)クライアントサポートというタイトルのWindows用のCスタイルAPIとCOM APIについて説明しているやや古いドキュメント(2001)があります。COM APIはUPNP.DLLによって公開され、SSDPのCスタイルAPIはSSDPAPI.DLLによって公開されます。

UPNP用のCOMスタイルのAPIがおそらく最善の策です。C#はCOMオブジェクトをラップして、相互運用を処理できるためです。このAPIがC#または.NETFrameworkにネイティブに移植されている場所は見つかりませんでした。

于 2008-10-01T22:19:32.013 に答える
1

また、Zeroconfの実装であるAppleのBonjourを検討することもできます。Mac、PC、Linux/BSDで利用できます。

于 2008-10-02T01:13:32.017 に答える
0

最近のMSアップデートのため、私のマルチキャストUDPソリューションは信頼できないようです。

于 2009-03-25T06:43:42.930 に答える
0

リモート作業で見つけた最善の解決策は、サーバー リストをクライアント システムの構成ファイルに保持し、更新可能にすることでした。メンテナンスは簡単ではありませんが、高速でブロードキャストもありませんでした。

于 2008-08-22T13:36:53.527 に答える