Wp7 到 WinRT:StreamSocket 和网络适配器首选项

本文关键字:网络适配器 首选项 StreamSocket WinRT Wp7 | 更新日期: 2023-09-27 18:31:56

我正在使用WinRT API将Windows Phone应用程序移植到Windows 8 Metro。它是一个网络应用程序,利用任意端口上的套接字(不同的服务器使用不同的端口)在Wp7平台上,我可以设置打开套接字连接时使用哪种网络连接类型的要求和首选项。例如,默认情况下,套接字将仅在WiFi上连接,而不是蜂窝数据连接,以保护用户免受意外数据使用的影响,但用户不仅可以将其设置为使用蜂窝连接,而且即使他们连接到wifi也可以使用它。例如,如果用户在使用 wifi 连接在防火墙后面的公司网络上,但他们要连接的服务器或端口被公司防火墙阻止,则这很有用。在这种情况下,即使连接到 WiFi,用户也可以告诉我的应用使用手机网络数据连接,以便连接可以通过。

到目前为止,在WinRT上,我只能获取有关当前活动的Internet连接的信息,并通过每个连接进行枚举。但是,我不知道如何告诉 StreamSocket 更喜欢通过当前活动数据的备用数据连接进行连接,或者这是否可能。如果没有此功能,则无法从应用端实现上述网络防火墙方案。用户必须转到系统设置并禁用 wifi 才能使用我的应用程序。这并不理想 - 我在Windows Phone上的用户喜欢在不打开或关闭wifi的情况下设置此首选项的功能。

是否有一种方法可以在 WinRT 中以编程方式设置网络适配器首选项,就像在 WP7 中一样?

Wp7 到 WinRT:StreamSocket 和网络适配器首选项

从(初步)文档来看,如果不深入研究套接字在 WinRT 中的实例化方式,我认为使用标准 API 无法做到这一点 - 也就是说,无论如何都不会让你的应用从应用商店中取消资格。

新的和重新设计的网络 API 的全部意义在于允许用户(以及 Windows 本身)将当前连接选项设置为所需的方式,并允许你的应用使其网络使用模式适应网络的当前功能。

可以说,这是WP7上可用的退步。但这里的论点是让系统和用户选择此时更正确的内容,并让应用程序适应这一点,而不是让应用程序提出使用哪个网络接口的逻辑。