我有一个 VPN 服务,使用 ParcelFileDescriptor 和一个构建器来设置网络参数。像这样的代码:
private Builder builder = new Builder().setSession("myService")
.addAddress(...)
.addDnsServer(...)
.establish()
现在,我想在连接时更新网络参数(例如 DNS 服务器)。
文档中的相关部分是这样的:
为避免冲突,同一时间只能有一个活动 VPN 接口。通常网络参数在 VPN 连接的生命周期内永远不会改变。应用程序在关闭前一个文件描述符后创建新的文件描述符也很常见。但是,在执行无缝切换时很少有两个接口,但并非不可能。在这种情况下,新界面创建成功后,旧界面将被停用。两个文件描述符都是有效的,但现在传出的数据包将被路由到新接口。因此,在耗尽旧的文件描述符之后,应用程序必须关闭它并开始使用新的文件描述符。如果无法创建新接口,则现有接口及其文件描述符保持不变。
正如它所说 - “通常网络参数在 VPN 连接的生命周期内永远不会改变”,但我确实想改变它们。可能吗?