0

Bluetooth を使用してアプリを作成していますが、Bluetooth を介して 2 つの実行中のデバイス間でデータを交換するのは非常に便利であることに気付きました。ただし、私の知る限り、ほとんどの Bluetooth デバイスは従来のサーバー/クライアント アーキテクチャを使用しているため、情報交換は一方的なものです。つまり、クライアントがサーバーにデータを要求し、サーバーがデータを送信しますが、その逆はありません。

この問題を回避するために、各デバイスにサーバー インスタンスとクライアント インスタンスを持たせ、クライアントが他のデバイスのサーバーに接続できるようにしました。ただし、これは 1 つではなく 2 つの通信チャネルを必要とするため、効率的ではないようです。

次に、BluetoothのWebサイトにアクセスしてみましたが、「役割の切り替え」が提案されました。つまり、サーバーがクライアントからのデータを必要とする場合、サーバーは自分自身をクライアントにし、クライアントはサーバーになるため、役割が逆になります。2 つのデバイスが同じ役割を果たし、同時にデータを交換できないのはなぜですか? では、これはどのような接続と呼ばれますか?

私はネットワーキングの経験がなかったので、私の質問は素朴に思えるかもしれませんが、誰かに答えを指摘してもらうか、不足している情報/教​​科書のどの章を教えてもらいたいので、wikiに書き込めます。

4

1 に答える 1

0

役割の切り替えは、基になる Bluetooth トポロジに影響を与えます。つまり、ピコネットでどのデバイスがマスターになるかです。これは接続の質に影響を与える可能性がありますが、想像しているようなコミュニケーションの方向性に直接影響するわけではありません。それははるかに低いレベルです。

はい、Android では Bluetooth 通信はソケットの抽象化を使用して行われ、ソケット接続のセットアップはクライアント サーバー方式で行われます。しかし、ソケットが接続されると、両側に BluetoothSocket インスタンスがあり、両側が出力ストリームを取得して通信を開始できると確信しています。そうでないと思う理由は何ですか?

于 2013-10-02T16:01:50.607 に答える