试图连接TCP / wifi / ad-hoc的随机行为

时间:2011-05-07 12:45:36

标签: windows-mobile compact-framework wifi opennetcf

我正在尝试使用OpenNETCF.Net将PDA连接到ad-hoc网络。我想强制设置链接本地地址而不依赖于回退机制,因为这需要一点时间。然后我想打开到另一台设备的TCP连接。我真的很困惑,因为关于如何完成这项工作的信息似乎很少,尤其是应该执行这些步骤的顺序。

我的尝试,有时有效:

var adp = NetworkInterface.GetAllNetworkInterfaces().
    First(v => v is WirelessZeroConfigNetworkInterface) 
    as WirelessZeroConfigNetworkInterface;  

if (adp.AssociatedAccessPoint != selectedAP.Name) {
    adp.AddPreferredNetwork(selectedAP);
    adp.ConnectToPreferredNetwork(selectedAP.Name);
}

adp.Unbind();
adp.CurrentIpAddress = IPAddress.Parse("169.254.1." + (new Random()).Next(2, 254).ToString());
adp.CurrentSubnetMask = IPAddress.Parse("255.255.0.0");
adp.Rebind();

顺便说一句,我删除了CurrentIpAddress和CurrentSubnetMask的setter中的Rebind调用,只需手动执行1。似乎没有什么区别,除了它有点快。

结果各不相同。有时所有的呼叫似乎都成功了,但我仍然连接到相同的SSID,而不是我想要连接的SSID。有时我会“无法查询WZC接口”,“找不到首选列表”或“无法设置WZC接口”。有时看起来无线适配器的索引会发生变化。

然而,有时候一切都很好。 TCP连接打开并按预期工作。但更常见的是,我在尝试写入流时遇到了SocketExceptions。

一切都在没有涉及Activesync的情况下完成,调试完全是文本文件/消息框:( 如果有人能描述我应该采取的步骤,我会很高兴。

1 个答案:

答案 0 :(得分:0)

最终我们尝试使用不同的PDA,它似乎总能正常工作。无论如何,该程序的整个Wi-Fi功能都被清除,因为似乎没有市场兴趣。