Android 用の wifi-direct アプリケーションを作成しています。デバイスへのソケット接続を試みています。グループ所有者の意図機能が機能していないように見えるため (ランダムに割り当てられているように見えるだけです)、クライアントの IP アドレスをホストに転送する方法を見つける必要があります。私が知っている唯一のアドレスは、WifiP2pManager が取得できるグループ情報オブジェクトに含まれるホスト デバイスです。どのデバイスがホストで、どのデバイスがクライアントであるかを知っているので、ソケットを開いて接続を確立したり、他のデバイスへの接続を試みたりできます。
「ホスト」デバイスがグループ所有者である場合、Wifi P2P (Wifi Direct) クライアントのデバイスの IP アドレスを転送する方法を見つける必要があります。ホストがグループの所有者である場合、クライアントのソケットに接続する方法がありません。ちょっとややこしいですが、こんな感じです。
ARPテーブルからIPアドレスを取得するようなものを見てきましたが、Wi-FiインターフェイスがWifiダイレクトに対して無効になっているため、ARPテーブルはわずか数秒(1分など)とICSで自動的にクリアされるようです。 arp テーブル内のすべてを参照してください。
これは簡単だと思いますが、私は Linux にあまり詳しくないので、どのファイルがネットワーク インターフェイスの設定を保持しているのかわかりません。ネットワーク インターフェイスの IP アドレスを取得する方法はありますか? または、少なくとも Wifi P2P インターフェイスですか? (注: これは Wi-Fi アドレスではありません。Wifi Direct であることを除いて、テザリング アドレスと似ています。WifiManager はこれを返しません)。
ありがとう、
Mgamerz