7

ウェブサーバーが組み込まれた制御デバイスを開発しています。Web サーバーは、(Windows ブラウザー、Mac ブラウザー、iPhone android などから) それを要求するすべての Web ブラウザーに制御インターフェイスを提供します。

私が抱えている問題は、デバイスへのアクセス方法を一般的に知る一般的な方法にあります。つまり、Web ブラウザに入力するアドレスです。

固定 IP はユーザーにとって技術的すぎて、デバイスが多くの異なるローカル ネットワークに接続される可能性があるため、うまくいかない可能性があります。uPnp サービス ディスカバリを使用するには、一部のプラットフォームのクライアントでソフトウェアを実行する必要があり、単に Web アドレスを入力するほど自然ではありません。名前解決を実装したい。

私の現在の実装では、netbios プロトコルを使用しています。したがって、Windows ブラウザーから //controller/ と入力すると機能しますが、Mac やスマートフォンでは機能しません。さらに、Apple の mDnsresponder を実装して、Mac と iPhone を快適にプレイできるようにすることもできます (ただし、//controller.local/ に限定されると思います)。Android、Symbian などにも同様のものが存在する可能性がありますが、1 つのネットワーク名を作成するためのより普遍的な解決策はありませんか?

プラットフォームは現在、TI Cortex M3 プロセッサと lwIP に基づいています。

解決策を見つける方法についてのヘルプや提案は大歓迎です。

敬具、

ボブ

4

2 に答える 2

1

DynDns (www.dyndns.org) を使用できると思います。何をしようとしているのかは無料です。固定 IP アドレスを取得できない場合でも使用できます。その場合、dyndns アップデータ ユーティリティを使用します。たとえば、ourCompanyName.dyndns.org を登録すると、常にローカル コンピュータにルーティングされます。

于 2011-02-22T09:20:10.457 に答える
1

Windows ユーザーが Zeroconf を使用してデバイスを「自動的に」見つけられるようにするには、次のことを行う必要があります。

  1. mDNSデーモンをインストールしてください(あなたが言及したmDNSResponderのように、Appleから無料で入手できます)
  2. mDNSデーモンにクエリを発行し、ローカル ネットワーク (つまり、デバイスの組み込み Web サーバー) で利用可能なサービスを表示する方法を認識している2 つ目のソフトウェアをインストールします。

Windows 用の Bonjour には、項目 2 に適した Internet Explorer プラグインがバンドルされており、ユーザーにとって「専門的すぎる」ものではない可能性があります。(Bonjour for Windows をダウンロードしてインストールし、ボックスにチェックを入れて Internet Explorer プラグインをインストールするだけで済みます。) Mac ユーザーは、Zeroconf 対応の Safari ブラウザーを使用するだけで済みます。

パズルの最後のピース (そして最も厄介な部分) は、コントローラーを「ローカル mDNS デーモン」に登録するために独自のソフトウェアを変更する必要があるということです。ただし、おそらく「制御デバイス」は組み込みシステムであるため、そのようなことはありません。したがって、必要最小限の mDNS デーモンを独自に作成する必要があります。それほど難しいことではなく、 Apple のmDNSPosixコードを出発点として使用できます。ただし、ハードウェアの制約によっては、これが実現できない場合があります。

全体として、Zeroconf は扱いにくいプロトコルのスタックになる可能性があります。「ゼロ構成」の側面は、ユーザーの経験にのみ適用されます。開発者にとって、それはかなり急な学習曲線を示します。通常、ユーザーがデバイスのインスタンスを1 つしか実行していない場合、それはやり過ぎかもしれません。

于 2011-09-28T22:16:58.813 に答える