私の意図は、Windows phone 8でインターネット経由でUDPメッセージを受信することです.
-> 最初の質問: これが可能であると仮定するのは間違っていますか?
テスト設定:
- WIFI がオフ、セルラーデータがオン
- NetworkInformation.GetHostNames() を実行すると、IANA ネットワーク コード 344 のホストが 1 つ取得されます。IP アドレスは「10.146.8.159」です。
- ブラウザで同時にicanhazip.comを開くと、「192.230.159.176」のIPアドレスが表示されます。
-> 2 番目の質問: これら 2 つの IP アドレスが異なるのはなぜですか?
私のコードは次のとおりです。
public async void Start()
{
m_rxSocket = new DatagramSocket();
m_rxSocket.MessageReceived += MessageReceived;
await m_rxSocket.BindServiceNameAsync("57000");
}
private async void MessageReceived(DatagramSocket sender, DatagramSocketMessageReceivedEventArgs socketEventData)
{
// This is never called
}
問題は、メソッド MessageReceived が呼び出されないことです:
- インターネット経由で UDP メッセージを 10.146.8.159 および 192.230.159.176 に送信する
- ID_CAP_NETWORKING の登録
-> 3 番目の質問: 上記のセットアップでメッセージが受信されないのはなぜですか?
(-> 4 番目の質問: Silverlight を使用した wp 開発は、C++ の匂いがするこの新しい API よりも優れていると考えている人はいますか?)