WiFi-Directをつかった1対多の通信方法について

584 views
Skip to first unread message

チョンボ

unread,
Apr 17, 2013, 12:32:43 AM4/17/13
to android-g...@googlegroups.com
お世話になっております。

現在WiFi-Directを使用した1対多の通信を行おうとアプリを制作しております。
仕様としては接続された各端末から複数宛に同時にメッセージを送信する事ができるようなイメージのアプリです。

現在相手端末を取得し、接続対象が1つであれば接続まではできている状況です。

方法としてはWifiP2pManager.WIFI_P2P_PEERS_CHANGED_ACTIONのブロードキャストを受け取り、

manager.requestPeers(channel, new PeerListListener(){

    @Override

    public void onPeersAvailable(WifiP2pDeviceList peers){

                 List<WifiP2pDevice> deviceList = new ArrayList<WifiP2pDevice>(peers.getDeviceList());

                 for(WifiP2pDevice d:deviceList){

                   Log.d("見つかった端末",""+d.deviceName+"/"+d.deviceAddress);

                 }

            }

});

これで接続できる端末のリストを取得しました。

しかし接続方法ですが、

WifiP2pConfig config = new WifiP2pConfig();

config.deviceAddress = targetDevice.deviceAddress;//取得した端末のdeviceAddress

config.wps.setup = WpsInfo.PBC;

manager.connect(channel, config, null);

のように接続を開始してるのですが、この場合1つの端末にしか接続されません。

複数に接続する場合これをループで接続端末数分ループで回すのでしょうか?

それともconfig.deviceAddressに複数の端末を追加する方法があるのでしょうか?


通信ロジックですが、他サイトの一部コードを見てみると1対1の通信でしたが、TCP/IP通信を行っていました。
1対1での通信でしたらTCP/IPを使うのは理解はできました。
しかし、複数通信になるとUDP/IPを使用する事になるのでしょうか?
そうなるとWiFi-Directを使用する意味がまるでないような気がするのですが、いかがでしょうか?
WiFi-DirectのAPIを調べてはいるのですが、複数端末宛にTCP/IP通信する方法の検討がついていない状況です。

長くなりましたが、お分かりの方いらっしゃいましたら是非、知恵を貸して頂けると有り難いと思います。
宜しくお願い致します。
Reply all
Reply to author
Forward
0 new messages