C# UDP-MulticastC#

Ein Treffpunkt für C#-Programmierer
Anonymous
 C# UDP-Multicast

Post by Anonymous »

Ich bekomme viele IP-Adressen, die von
verwendet werden können

Code: Select all

                var validIps = NetworkInterface
.GetAllNetworkInterfaces()
.Where(nic => nic.OperationalStatus == OperationalStatus.Up)
.SelectMany(nic => nic.GetIPProperties().UnicastAddresses)
.Select(ua => ua.Address)
.Where(addr => addr.AddressFamily == AddressFamily.InterNetwork);

foreach (var item in validIps)
{
Console.WriteLine(item);
}
//192.168.3.244 WLAN
//192.168.153.1 VMware Network Adapter VMnet1
//192.168.25.1 VMware Network Adapter VMnet8
//127.0.0.1
aber es kann nur ein Paar zum Empfangen verwendet werden.
Code

Code: Select all

  namespace UDP
{
internal class Program
{
static void Main(string[] args)
{
//绑定本地IP端点
//IPAddress ip_b = IPAddress.Parse("192.168.3.244");
//IPAddress ip_b = IPAddress.Parse("192.168.153.1");
IPAddress ip_b = IPAddress.Parse("192.168.25.1");
//IPAddress ip_b = IPAddress.Parse("127.0.0.1");
IPEndPoint iPEndPoint_B = new IPEndPoint(ip_b, 321);
UdpClient udpClientB = new UdpClient(iPEndPoint_B);

Byte[] sendBytes_multi = Encoding.ASCII.GetBytes("Gruop 224.0.1.0 say Hi");

IPAddress multiCastIP = IPAddress.Parse("224.0.2.0");

IPEndPoint multiCastIPEndPoint = new IPEndPoint(multiCastIP, 321);

udpClientB.JoinMulticastGroup(multiCastIP, ip_b);

Task.Run(() =>
{
var bytes = udpClientB.Receive(ref multiCastIPEndPoint);
string msg = Encoding.UTF8.GetString(bytes);
Console.WriteLine("B:" + msg);
Console.WriteLine(udpClientB.Client.LocalEndPoint);
});

UdpClient sendMultiUdp = new UdpClient();

sendMultiUdp.Connect(multiCastIPEndPoint);

sendMultiUdp.MulticastLoopback = true;

sendMultiUdp.Ttl = 5;

sendMultiUdp.Send(sendBytes_multi);

Console.ReadKey();
//result:
//B:Gruop 224.0.1.0 say Hi
//192.168.25.1:321
}
}
}

Ich binde eine bestimmte IP im Empfangs-UdpClient, um zu sehen, ob UDP Multicast Nachrichten an jede IP senden kann, die der Multicast-Gruppe beitritt.
Wenn ich keine IP im Empfangs-UdpClinet binde. Es wird 0.0.0.0:321

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post