我正在尝试使用套接字和 WP7.5。目前,我正在研究套接字的 SetNetworkRequirement 属性。我正在遵循此操作指南,但是,操作系统似乎忽略了网络要求。
当我将要求设置为蜂窝网络时,即使我只连接到 3G,在执行 ConnectAsync 时也不会发生任何事情。但是,如果我连接到 Wifi 并使用 NonCellular,我可以在我的 tcpdump 中看到已建立连接。
奇怪的是 SDK 的行为没有记录在案。当我将要求设置为蜂窝时,我仍然得到 SocketError.Success,即使我可以看到没有建立连接。我也可以使用这个套接字发送数据,并且 SendAsync 也接收到 SocketError.Success。
我的问题是,有没有人看到过类似的行为或运气好将网络要求设置为蜂窝网络?另一个奇怪的现象是,如果我要求手机连接到不存在的 IP/端口,我会在两个接口上看到连接尝试。基于此,我怀疑正在进行一些 undocumentet 缓存。
编辑:我对此进行了更多调试。所描述的行为似乎与端口相关联。如果我使用 80 以外的任何其他端口,电话会同时连接 Cellular 和 NonCellular。
提前致谢。