2016-11-21 3 views
1

現代のAndroid携帯端末のアプリでTCP接続を行うベアラを指定することは可能ですか?Android 6/7でTCP接続のベアラを指定する

つまり、Wifi を使用してGPRSを使用している(おそらく異なる)サーバーに接続したいと考えています。

私は、電話機のインターフェイスを列挙し、接続の送信元アドレスと宛先ポートとアドレスを指定する必要があると推測しています。

Androidで「SO_BINDTODEVICE」を使用する方法はありますか?

答えて

1

私はSO_BINDTODEVICEについて何も知らないが、Lollipopのように、あなたが望むことをするための専用のAndroid APIがあります。

ConnectivityManagerを使用して、利用可能なネットワークを列挙し、obtain a SocketFactoryのソケットが選択したネットワークを介して通信するだけです。

0

TCPは通信の媒体を心配しません。そのIPとイーサネット層の内部メカニズムには無関心です。だから、私は、TCPはGPRSとWifiを区別するのに役立つわけではないと思います。

システムで利用可能な特定のIPアドレスにバインドすることができます。 IPは、特定の媒体のsrcにすることができます。

+0

答えていただきありがとうございますが、少し高すぎます。 Android以外のLinuxでは、SO_BINDTODEVICEを使用して、特定のデバイスにTCP接続をバインドすることができます。 – fadedbee