2008-08-22 16 views
4

私はリモートの.Netと通信するクライアント/サーバーアプリケーションを持っています。私はクライアント側の設定を必要とせずにネットワーク上のサーバを見つけることができるようにクライアントを必要とします。リモートサーバーの自動検出。ブロードキャストかどうか?

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

私は先に進む前に集団の知恵を聞きたいです。これが最善の方法ですか?その他の提案はありますか?

答えて

4

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

IMHO、SSDP、UPnP、膨大でリソースの発見には非常に複雑ですが、ちょっと、標準です。 ;)

0

リモーティング作業で私が見いだした最良の解決策は、クライアントシステムの設定ファイルにサーバーリストを保存して更新可能にすることでした。維持するのが最も簡単ではなく、速くて放送はありませんでした。

+0

私はすでにクライアント側の設定ソリューションを用意しています。このノータッチの要件は、私の周回で新たに落とされました。基本的には、管理者の介入を最小限に抑えて大量のダミーエンドユーザーに展開する必要があります。とにかくThx。 – Ishmaeel

1

あなたが必要とするものはSimple Service Discovery ProtocolまたはSSDPです。これは、WindowsのUniversal Plug and Playに対するMicrosoftのサポートの一部として実装されています。これは業界標準のプロトコルなので、良い選択です。たとえば、ファイアウォールやその他の問題に対処したい場合は、独自のソリューションをロールバックするのではなく、他の人がこれを把握する必要があります。

あなたが話しているので、私はあなたがWindows上にいると仮定します。 Universal Plug and Play (UPnP) Client Supportと題されたCスタイルのAPIとWindows用のCOM APIについて説明する多少古い文書(2001年)があります。 COM APIはUPNP.DLLによって公開され、SSDPのCスタイルAPIはSSDPAPI.DLLによって公開されます。

COM-style APIs for UPNPはおそらくあなたの最善の策です。 C#はあなたのためにCOMオブジェクトを包むことができ、interopを処理できます。このAPIがネイティブにC#または.NET Frameworkに移植された場所は見つかりませんでした。

1

また、アップルのBonjourZeroconfの実装)も考えられます。 Mac、PC、およびLinux/BSDで使用できます。

0

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

関連する問題