これは C++ の質問というよりもネットワークに関する質問である可能性がありますが、私はネットワーク PC と UDP を介して通信する iOS アプリを持っています。どちらも、私が C で書いたいくつかの UDP ソケット クラスを使用しています。私の症状は次のとおりです。
- PC アプリがブロードキャスト トラフィックを送信すると、iOS アプリと同様に、PC 自体の Wireshark がそれを認識します。同じネットワーク上の 3 番目の PC も、Wireshark 経由でパケットを確認します。
- iOS アプリがブロードキャスト トラフィックを送信するとき、アプリを実行している PCは Wireshark のパケットを認識しません。ただし、3 台目の PCは.
追加情報:
- 問題の PC は Windows 7 を実行しています。
- カメラに使用されているイーサネットポートがあります。
- ワイヤレス ネットワーク カードが内蔵されており、ネットワークに接続されているだけでなく、Connectify というトリッキーな小さなアプリを使用して、独自のワイヤレス ネットワークを個別に作成しています。データを送信しようとしているのは、Connectify ネットワーク全体です。ただし、Connectify 以外のワイヤレス ネットワークを介してデータを送信しようとしましたが、それでも失敗します (ただし、ネットワーク上の 3 番目の PC はまだトラフィックを認識しています)。更新最後の文は無視してください。それは誤りです。ワイヤレス ネットワークを変更すると、機能します。
私が試したこと:
- 最初は、これはルーティング テーブルの問題であると想定していたので、そのインターフェイスに関連するすべてのエントリに対して、メトリック数の低い永続的なルートを追加しました。ルーティング テーブルは次のとおりです。
IPv4 ルート テーブル ================================================== ========================= アクティブなルート: ネットワーク宛先ネットマスク ゲートウェイ インターフェイス メトリック 0.0.0.0 0.0.0.0 10.1.11.1 10.1.11.169 25 10.1.11.0 255.255.255.0 オンリンク 10.1.11.169 281 10.1.11.169 255.255.255.255 オンリンク 10.1.11.169 281 10.1.11.255 255.255.255.255 オンリンク 10.1.11.169 281 127.0.0.0 255.0.0.0 オンリンク 127.0.0.1 306 127.0.0.1 255.255.255.255 オンリンク 127.0.0.1 306 127.255.255.255 255.255.255.255 オンリンク 127.0.0.1 306 192.168.190.0 255.255.255.0 オンリンク 192.168.190.1 6 192.168.190.1 255.255.255.255 オンリンク 192.168.190.1 6 192.168.190.255 255.255.255.255 オンリンク 192.168.190.1 6 224.0.0.0 240.0.0.0 オンリンク 127.0.0.1 306 224.0.0.0 240.0.0.0 オンリンク 10.1.11.169 281 224.0.0.0 240.0.0.0 オンリンク 192.168.190.1 257 255.255.255.255 255.255.255.255 オンリンク 192.168.190.1 6 ================================================== ========================= 永続的なルート: ネットワーク アドレス ネットマスク ゲートウェイ アドレス メトリック 255.255.255.255 255.255.255.255 192.168.190.1 5 192.168.190.0 255.255.255.0 192.168.190.1 5 192.168.190.1 255.255.255.255 192.168.190.1 5 192.168.190.255 255.255.255.255 192.168.190.1 5 ================================================== =========================
- 次に、この Connectify プログラムで何かおかしなことが起こっていると思い、10.1.11 ネットワーク経由でブロードキャストを試みました (永続的なルートを元に戻した後)。上記のように、これは成功します。
何か案は?私は困惑しています。ネットワーク カードの制限である可能性があると思いますが、それでは、なぜ自身のブロードキャスト パケットが送信されるのを確認できるのでしょうか? iOS が出力しているパケット サイズが PC の NIC に対して大きすぎる可能性がありますか?