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

时间:2012-04-21 16:16:50

标签: c# windows xaml windows-8 windows-runtime

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

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

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

1 个答案:

答案 0 :(得分:1)

从(初步)文档来看,我不相信使用标准API可以做到这一点,而不深入研究如何在WinRT中实例化套接字 - 也就是说,没有做会让你的应用程序被取消资格的东西无论如何,商店。

新的和重新设计的网络API的重点是允许用户(以及Windows本身)根据需要设置当前连接选项,并允许您的应用将其网络使用模式调整为当前网络的能力。

可以说, 是WP7上可用的一步。但这里的论点是让系统和用户选择现在更正确的东西,并让应用程序适应这一点,而不是让应用程序为使用什么网络接口提供逻辑。