OpenNETCF.Net を使用して PDA をアドホック ネットワークに接続しようとしています。リンク ローカル アドレスの設定を強制し、フォールバック メカニズムに依存しないようにしたいと考えています。これには時間がかかりすぎるためです。次に、別のデバイスへの 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 のセッターで Rebind 呼び出しを削除し、手動で 1 つだけ実行しました。少し速いことを除けば、違いはないようです。
結果はさまざまです。時々、すべての通話が成功しているように見えますが、接続したい SSID ではなく、同じ SSID にまだ接続しています。「WZC インターフェイスを照会できません」、「優先リストが見つかりません」、または「WZC インターフェイスを設定できません」というメッセージが表示されることがあります。ワイヤレス アダプタのインデックスが変更されているように見えることがあります。
ただし、すべてが正常に機能する場合もあります。TCP 接続が開き、期待どおりに動作します。ただし、多くの場合、ストリームに書き込もうとすると SocketExceptions が発生します。
Activesync が関与することなくすべてが行われ、デバッグは完全にテキスト ファイル/メッセージ ボックスです :(