【发布时间】:2011-04-27 02:04:39
【问题描述】:
我想使用 ConnectivityManager 来找到一个合适的网络,然后创建一个将使用该网络的套接字。是否可以将套接字“绑定”到指定的热点?
谢谢, 那鸿
【问题讨论】:
标签: android
我想使用 ConnectivityManager 来找到一个合适的网络,然后创建一个将使用该网络的套接字。是否可以将套接字“绑定”到指定的热点?
谢谢, 那鸿
【问题讨论】:
标签: android
当您希望程序在特定 IP 或接口上发送/接收数据时,您可以绑定套接字。当您有多个主机时,通常使用套接字绑定,即。一台带 2 个网卡的电脑。
使用Android你真的不需要做任何绑定,因为你实际上不能同时打开wifi接口和cell接口(当wifi打开时Android会切断cell的数据接口。)
如果您在 android 上使用 VPN,则有一个例外,在这种情况下,如果您想使用 VPN 网络而不是 cell/wifi 网络发送/接收数据,绑定接口就会发挥作用。
话虽如此,绑定确实与您连接的wifi热点没有任何关系。绑定发生在 IP(网络)级别和热点识别级别(MAC [链接]。)
您可以识别热点并阻止发送/接收:
ways for a client to identify the specific access point it is connected to within a single SSID?
-- 丹
编辑:这篇其他帖子可能会有所帮助:Determining Android VPN Interface/IP?
用于绑定的网络确实不多。
如果你真的想告诉 Android 连接到哪个接入点(这与绑定无关),那么你可以使用 WifiManger:
http://developer.android.com/reference/android/net/wifi/WifiManager.html
只需使用您要连接的网络调用 enableNetwork。
【讨论】: