Случайное поведение при попытке подключения TCP / Wi-Fi / ad-hoc - PullRequest
0 голосов
/ 07 мая 2011

Я пытаюсь подключить мой КПК к специальной сети, используя OpenNETCF.Net.Я хочу принудительно установить локальный адрес ссылки, а не полагаться на резервный механизм, потому что это занимает слишком много времени.Затем я хочу открыть 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();

Кстати, я удалил вызовы Rebind в установщиках CurrentIpAddress и CurrentSubnetMask и просто сделал 1 вручную.Кажется, не имеет значения, за исключением того, что он немного быстрее.

Результаты могут отличаться.Иногда все вызовы кажутся успешными, но я все еще подключен к тому же SSID, а не к тому, к которому я хочу подключиться.Иногда я получаю «Невозможно запросить интерфейс WZC», «Список предпочтений не найден» или «Невозможно установить интерфейс WZC».Иногда кажется, что индекс беспроводного адаптера меняется.

Однако иногда все работает нормально.Соединение TCP открывается и работает как положено.Чаще всего я получаю SocketExceptions при попытке записи в поток.

Все делается без участия Activesync, отладка полностью текстовых файлов / ящиков сообщений :( Я был бы очень рад, если бы кто-то мог описатьшаги, которые я должен предпринять.

1 Ответ

0 голосов
/ 15 декабря 2011

В конце концов мы попробовали использовать другой КПК, который, кажется, работает нормально.Все функциональные возможности программы Wi-Fi были удалены в любом случае, так как, похоже, рыночный интерес отсутствует.

...