1

利用可能なネットワークにパケットをユニキャストしようとしています。全部で 3 つのネットワークがあります。1つのネットワークでのみパケットを取得できましたが、別のネットワークでパケットを受信できません。

このコードを使用して..

        foreach (var i in System.Net.NetworkInformation.NetworkInterface.GetAllNetworkInterfaces())
        {
            foreach (var ua in i.GetIPProperties().UnicastAddresses)
            {
                System.Windows.Forms.MessageBox.Show(ua.Address.ToString());
                IPAddress Tip = IPAddress.Parse(ua.Address.ToString());
                IPEndPoint targetEndPoint = new IPEndPoint(Tip, iTargetPort);
                MyUdpClient sendUdpClient = new MyUdpClient();
                int numBytesSent = sendUdpClient.Send(CombineHeaderBody, CombineHeaderBody.Length, targetEndPoint);
            }
        }

問題は何ですか?ありがとう。

4

3 に答える 3

1

自分自身にパケットを送ろうとしていると思いますか?

ユニキャスト アドレスとマルチキャスト アドレスを混同していませんか?

わかりましたので、マルチキャストしようとしていません...

各ネットワーク インターフェイスには IP アドレスがあります。ここで行っているのは、ネットワーク カードにパケットを送信することです。あなたのマシンはおそらくそれ自身のIPアドレスを知っており、それを127.0.0.1に再ルーティングするため、実際にはネットワークの問題ではありません

于 2009-07-08T07:12:33.447 に答える
0

私はネットワークの達人ではありませんが、ちょっと試してみます。すべてのパケットは、3 つのアドレスを認識しているデフォルト インターフェイスを介して送信されると仮定します。それは、それ自身、ループバック、およびゲートウェイです。したがって、10.10.1.117 宛ての 192.168.1.111 からのパケットは、デフォルト ゲートウェイを通過する必要があります (これを 192.168.1.1 としましょう)。到達不能ですよね?わかりません、それは私の推測です。

でも、多分私は間違っています。おそらく、デフォルトのデバイスを使用せず、代わりに使用可能なすべてのインターフェースと TCP/IP スタックを使用します。とにかく、私はあなたが見つけたものを見たいと思っています。最新情報をお寄せください。

さらに、アドレスを書き留めておくと役立つ場合があります。トレースルートはあなたの友達です。

于 2009-07-08T07:42:48.267 に答える