试图单播数据包到可用网络。总共有3网络。托管只在一个network.But拿到包我不能够在不同的网络接收数据包。

使用此代码..

        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);
            }
        }

什么是概率?感谢。

有帮助吗?

解决方案

我想你想发送数据包到自己呢?

您确定你不是混淆的单播和多播地址?

好了,所以你不是要播...

每个网络接口的具有IP地址。你在做什么这里是将数据包发送到您的网卡。这是不是真的网络的问题,因为你的机器很可能知道自己的IP地址,并将其重新路由到127.0.0.1

其他提示

由于你有一个以上的界面您多宿主。对于每一个界面,你将不得不指定一个IP地址。因此,与三个接口您将有三个本地IP的。当您使用UdpClient你需要指定使用它的IP要发送的界面了。

让我们假设你有以下三个本地IP的

  

10.1.0.1结果   10.2.0.1结果   10.4.0.1结果   与255.255.0.0的网络掩码

和您要发送一个UDP包,10.2.5.5,你需要发送出去10.2.0.1因此使用下面的代码

IPEndPoint localEndPoint = new IPEndPoint(IPAddress.Parse("10.2.0.1"), 0);
IPEndPoint targetEndPoint = new IPEndPoint(IPAddress.Parse("10.2.5.5"), iTargetPort);
UdpClient sendUdpClient = new UdpClient(localEndPoint);
int numBytesSent = sendUdpClient.Send(CombineHeaderBody, CombineHeaderBody.Length, targetEndPoint);

和一个UDP分组发送到10.1.90.5需要发送出去10.1.0.1所以用下面的代码

IPEndPoint localEndPoint = new IPEndPoint(IPAddress.Parse("10.1.0.1"), 0);
IPEndPoint targetEndPoint = new IPEndPoint(IPAddress.Parse("10.1.90.5"), iTargetPort);
UdpClient sendUdpClient = new UdpClient(localEndPoint);
int numBytesSent = sendUdpClient.Send(CombineHeaderBody, CombineHeaderBody.Length, targetEndPoint);

两者的localEndPoint和targetEndPoint之间的差异。

我没有太多的网络大师,但我会尝试采取刺伤它。我认为所有的数据包通过哪知道三个不会忽略默认接口发送:它自己,环回和网关。因此,从192.168.1.111往10.10.1.117包将需要通过默认网关(让我们只说这是192.168.1.1),但如果192.168.1.1不知道该怎么10.10.0.0的路由,那么目的主机可达吧?我不知道,这是我的猜测。

虽然,也许我错了。也许它不使用默认设备,而是使用所有可用的接口,使用TCP / IP协议栈一起。无论如何,我很好奇,看看你发现了什么,虽然。请让我们更新。

此外,记下这些地址可能是有帮助的。跟踪路由是你的朋友。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top