13

私はネットワーク プログラミングの経験がほとんどなく、各デバイスが同じ LAN 内の他のデバイスを検索できるようにする必要があるマルチ プラットフォーム システムを作成しています。私はそれを行うための正しいアプローチを探しています。ここの人々が良いアドバイスをしてくれることを願っています. 私の設計要件は次のとおりです。

  1. 私は C++ を使用しており、ソリューションはクロスプラットフォームである必要があり、少なくとも iOS、Windows、Android で実行できます。

  2. システムは非常に軽量で、可能であれば特別なセットアップやネットワーク要件なしで動作する必要があります。

私が検討しているさまざまなアプローチを次に示します。

  1. uPnP プロトコルを使用していますが、私はあまり詳しくありません。この件に関するコードの例はあまりないようです。

  2. 従来のソケット アプローチを使用して、各デバイスにサーバー/クライアントの両方を作成し、LAN 内のすべての IP にデータ パケットを送信します。その後、すべてを手動で行います。間違っていたら訂正してください。パケットをブロードキャスト アドレスに送信すると、システムが自動的にパケットをサブネット内のすべての IP に送信するということですか?

  3. 外部サーバーを使用すると、すべてのクライアントが登録され、そのサーバーから他の (既に登録されている) クライアントに関する情報が取得されます。ただし、各クライアントが同じ LAN 内にあると判断するために、どの情報を接続すればよいかわかりません。

私が考えていることが意味を成すかどうか教えてください。どんなアドバイスでも大歓迎です。

4

1 に答える 1

4

あなたがリストしていないオプションの 1 つは、ZeroConf の DNS-SDプロトコルです。

これは、 Bonjour (旧称 Rendezvous)として販売している Apple によって頻繁に使用されています。iOS と MacOSX への緊密な統合があります。
Apple はまた、Windows実装である SDK を提供し、mDNS サービスをオープンソース化しました。

Android はそのままでサポートしているようです

また、ほとんどのデスクトップ ディストリビューションに含まれているAvahiの形で、Linux の堅牢で成熟したサポートもあります。

ユーザーが何かをインストールする必要がある唯一のプラットフォームは Windows のようです。それでも、iTunes (音楽ライブラリの共有に使用) と Apple のワイヤレス アクセス ポイントのセットアップ ソフトウェアと共にインストールされます。

于 2013-04-25T23:26:04.633 に答える