我想使用ConnectivityManager来查找适当的网络,然后创建一个将使用该网络的套接字。是否可以将套接字“绑定”到指定的热点?
谢谢, 内厄姆
答案 0 :(得分:0)
如果希望程序在特定IP或接口上发送/接收数据,则可以绑定套接字。当您拥有多个主机时,通常会使用套接字绑定,即。一台2 nics的电脑。
使用Android你真的不需要做任何绑定,因为你实际上不能同时启动wifi接口和单元接口(Android会在wifi转动时关闭单元的数据接口上。)
如果您在Android上使用VPN,那么一个例外是,如果您想使用VPN网络而不是单元/ wifi网络发送/接收数据,绑定接口就会起作用。
所有这一切,绑定确实与您连接的wifi热点无关。绑定发生在IP(网络)级别和热点标识级别(MAC [link]。)
您可以识别热点并阻止发送/接收:
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即可。