現代のAndroid携帯端末のアプリでTCP接続を行うベアラを指定することは可能ですか?Android 6/7でTCP接続のベアラを指定する
つまり、Wifi とを使用してGPRSを使用している(おそらく異なる)サーバーに接続したいと考えています。
私は、電話機のインターフェイスを列挙し、接続の送信元アドレスと宛先ポートとアドレスを指定する必要があると推測しています。
Androidで「SO_BINDTODEVICE」を使用する方法はありますか?
現代のAndroid携帯端末のアプリでTCP接続を行うベアラを指定することは可能ですか?Android 6/7でTCP接続のベアラを指定する
つまり、Wifi とを使用してGPRSを使用している(おそらく異なる)サーバーに接続したいと考えています。
私は、電話機のインターフェイスを列挙し、接続の送信元アドレスと宛先ポートとアドレスを指定する必要があると推測しています。
Androidで「SO_BINDTODEVICE」を使用する方法はありますか?
私はSO_BINDTODEVICE
について何も知らないが、Lollipopのように、あなたが望むことをするための専用のAndroid APIがあります。
ConnectivityManagerを使用して、利用可能なネットワークを列挙し、obtain a SocketFactoryのソケットが選択したネットワークを介して通信するだけです。
TCPは通信の媒体を心配しません。そのIPとイーサネット層の内部メカニズムには無関心です。だから、私は、TCPはGPRSとWifiを区別するのに役立つわけではないと思います。
システムで利用可能な特定のIPアドレスにバインドすることができます。 IPは、特定の媒体のsrcにすることができます。
答えていただきありがとうございますが、少し高すぎます。 Android以外のLinuxでは、SO_BINDTODEVICEを使用して、特定のデバイスにTCP接続をバインドすることができます。 – fadedbee