2

クライアントがサービスを発見するための戦略にはどのようなものがありますか?

たとえば、サービスに接続したいクライアントがいるとします (同じネットワークの同じサブネット上にあると仮定します)。サービスが実行されていることを検出するための良い方法は何ですか?

クライアントに頻繁にブロードキャストして、サービスが応答するのを待つ必要がありますか? それとも、サービスを頻繁にブロードキャストして、クライアントに聞いてもらうでしょうか?

サービス自体をブロードキャストし、クライアントにリッスンしてもらいたいと思います。

これの標準的な慣行は何ですか?

たとえば、このサービスは、クライアントが wifi/ネットワーク経由でリモート コントロールすると音楽を再生するミュージック プレーヤーのようなものになります。PC/MAC 上の iTunes プレーヤーを制御する iPhone 用の iTunes Remote を考えてみてください。

4

1 に答える 1

1

あなたの質問には2つの部分があります:

  • サービスを見つける方法は?
  • サービスが実行されているかどうかを確認する方法は?

サービスが実行されているかどうかを確認する通常の方法は、サービスへの接続を試みることです。

では、それを見つける方法は?通常、ブロードキャストは避けたいでしょう。典型的なアプローチは次のとおりです。

  • クライアントでサーバーの名前を構成します。
  • カスタム DHCP オプションを追加します。クライアントは、DHCP サーバーからサーバーのアドレスを照会できます。

ブロードキャストを行う場合、クライアントがクエリを送信するのは正常です。これにより、新しいクライアントがネットワークに参加するたびに単一のブロードキャストが提供されます。これは、サーバーがその場所をアドバタイズしている場合の継続的なブロードキャスト (およびクライアントでの遅延) とは対照的です。

于 2012-03-03T16:35:07.230 に答える