/ / Określ nośnik dla połączenia TCP w Androidzie 6/7 - Android, TCP, Android-6.0-Marshmallow, Android-N

Określ nośnik dla połączenia TCP w systemie Android 6/7 - android, tcp, android-6.0-marshmallow, android-n

Czy jest możliwe, aby aplikacja na nowoczesnym telefonie z Androidem określiła, na którym nośniku należy nawiązać połączenie TCP?

tzn. chciałbym otworzyć połączenie z serwerem za pomocą Wi-Fi i połączenie z (ewentualnie innym) serwerem za pomocą GPRS.

Zgaduję, że musiałbym wyliczyć interfejsy w telefonie i podać adresy źródłowe połączeń, a także docelowe porty i adresy.

Czy istnieje sposób użycia „SO_BINDTODEVICE” w Androidzie?

Odpowiedzi:

1 dla odpowiedzi № 1

Nic o tym nie wiem SO_BINDTODEVICE, ale od Lollipop istnieją dedykowane interfejsy API Androida do robienia tego, co chcesz.

Możesz użyć Menedżer połączeń wyliczyć dostępne sieci, a następnie uzyskać SocketFactory których gniazda będą komunikować się tylko przez wybraną sieć.


0 dla odpowiedzi nr 2

TCP nie martwi się o środek komunikacji. Jest niezależny od wewnętrznych mechanizmów warstwy IP i Ethernet. Myślę więc, że TCP nie pomoże ci rozróżnić GPRS i Wi-Fi.

Możesz powiązać z określonym adresem IP dostępnym w systemie. Adres IP może być src na dowolnym konkretnym nośniku.