android - 在 Android 6/7 中为 TCP 连接指定承载

标签 android tcp android-6.0-marshmallow android-7.0-nougat

现代 Android 手机上的应用程序是否有可能指定应该在哪个承载上建立 TCP 连接?

即我想使用 Wifi 打开与服务器的连接使用 GPRS 与(可能不同的)服务器的连接。

我猜我需要枚举手机上的接口(interface)并指定连接的源地址,以及目标端口和地址。

有没有办法在 Android 中使用“SO_BINDTODEVICE”?

最佳答案

我对 SO_BINDTODEVICE 一无所知,但从 Lollipop 开始,有专门的 Android API 可以满足您的需求。

您可以使用 ConnectivityManager枚举可用网络,然后 obtain a SocketFactory其套接字将仅通过选定的网络进行通信。

关于android - 在 Android 6/7 中为 TCP 连接指定承载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40723538/

相关文章:

python - Twisted - 在子进程中使用 adoptStreamConnection 后,如何告诉 react 器处理协议(protocol)对象?

c# System.InvalidOperationException 异常

node.js - 如何在不监听nodejs的情况下绑定(bind)TCP套接字?

Android M 权限永远不想显示带有复选框的选项 "Never ask again"

android - 确定应用程序何时在 Android M 中退出空闲模式

android - 盖乐世 S8 : screen height returning wrong value

android - 将图库中的图像存储到不同的文件夹

android - 检测应用程序何时完全绘制并可见

android - ICS 新日期选择器不工作

Android 自动备份冲突解决