0

我正在尝试使用套接字和 WP7.5。目前,我正在研究套接字的 SetNetworkRequirement 属性。我正在遵循此操作指南,但是,操作系统似乎忽略了网络要求。

当我将要求设置为蜂窝网络时,即使我只连接到 3G,在执行 ConnectAsync 时也不会发生任何事情。但是,如果我连接到 Wifi 并使用 NonCellular,我可以在我的 tcpdump 中看到已建立连接。

奇怪的是 SDK 的行为没有记录在案。当我将要求设置为蜂窝时,我仍然得到 SocketError.Success,即使我可以看到没有建立连接。我也可以使用这个套接字发送数据,并且 SendAsync 也接收到 SocketError.Success。

我的问题是,有没有人看到过类似的行为或运气好将网络要求设置为蜂窝网络?另一个奇怪的现象是,如果我要求手机连接到不存在的 IP/端口,我会在两个接口上看到连接尝试。基于此,我怀疑正在进行一些 undocumentet 缓存。

编辑:我对此进行了更多调试。所描述的行为似乎与端口相关联。如果我使用 80 以外的任何其他端口,电话会同时连接 Cellular 和 NonCellular。

提前致谢。

4

1 回答 1

0

如果有人遇到相同的行为,那么一切都表明这是一个操作系统错误。似乎存在与在端口 80 上运行的服务器相关的问题,因为 setNetworkRequirement 对于所有其他端口(我已经尝试过)都受到尊重。

于 2012-06-03T15:54:55.957 回答