0

私の意図は、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 よりも優れていると考えている人はいますか?)

4

1 に答える 1

0

こんにちは私は何が間違っていたかを見つけました:

UDP ホール パンチングの欠如が動作の理由であり、UDP ホール パンチングを追加することで機能させました。

于 2013-09-15T13:27:36.713 に答える