您的当前位置:首页单播,组播,广播代码,以及广播地址,组播地址的计算

单播,组播,广播代码,以及广播地址,组播地址的计算

2024-06-30 来源:乌哈旅游


单播,组播,广播代码,以及广播,组播地址的计算

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Windows;

using System.Windows.Controls;

using System.Windows.Data;

using System.Windows.Documents;

using System.Windows.Input;

using System.Windows.Media;

using System.Windows.Media.Imaging;

using System.Windows.Navigation;

using System.Windows.Shapes;

using System.Timers;

using System.Threading;

using System.Net.Sockets;

using System.Net;

namespace BCast

{

public partial class MainWindow : Window

{

public MainWindow()

{

InitializeComponent();

ThreadHandle();

t.Elapsed += new ElapsedEventHandler(t_Elapsed);

t.AutoReset = true;

t.Enabled = true;

t.Start();

}

void t_Elapsed(object sender, ElapsedEventArgs e)

{

ClientSender();

}

Thread thread;

System.Timers.Timer t = new System.Timers.Timer(1000);

public void ThreadHandle()

{

thread = new Thread(new ThreadStart(ClientGeter));

thread.IsBackground = true;

thread.Start();

}

UdpClient udpgeter = new UdpClient(10881);

IPAddress iap = IPAddress.Parse(\"127.0.0.1\");

public void ClientGeter()

{

IPEndPoint iep = new IPEndPoint(iap, 10881);

//udpgeter.JoinMulticastGroup(multicastIP);

while (true)

{

byte[] b = udpgeter.Receive(ref iep);

string str = Encoding.UTF8.GetString(b);

Console.WriteLine(str);(看看控制台是否得到了你想要的数据)

}

}

UdpClient multicastUDP = new UdpClient();

组播的地址是保留的D类地址从224.0.0.0—239.255.255.255,而且一些地址有特定的用处如,224.0.0.0—244.0.0.255只能用于局域网中路由器是不会转发的,并且224.0.0.1是所有主机的地址,224.0.0.2所有路由器的地址,224.0.0.5所有ospf路由器的地址,224.0.13事PIMv2路由器的地址;239.0.0.0—239.255.255.255是私有地址(如192.168.x..x);224.0.1.0—238.255.255.255可以用与Internet上的。

//IPAddress multicastIP = IPAddress.Parse(\"224.110.10.1\");(组播)

所谓广播地址指同时向网上所有的主机发送报文,也就是说,不管物理网络特性如何,internet网支持广播传输。如136.78.255.255就是B类地址中的一个广播地址,你将信息送到此地址,就是将信息送给网络号为136.78的所有主机。

计算方法:首先计算网络地址=IP地址 逻辑与 子网掩码

先把IP,子网掩码转为2进制,然后进行逻辑与运算,得出网络地址

例:

IP 192.168.1.3 子网掩码 255.255.0.0

IP转二进制 11000000.10100100.00000001.00000011

子网掩码 11111111.11111111.00000000.00000000

与运算后 11000000.10100100.00000000.00000000

192.168.0.0这就是网络地址,计出来后把网络地址后面的0全部改为255就是广播地址了,那么此例中广播地址就为192.168.255.255

如果不会算的就在cmd中输入ipconfig,然后在计算机中用程序员模式计算就OK了

IPAddress multicastIP = IPAddress.Parse(\"192.168.1.255\");(广播)

int multicastPort = 10881;

public void ClientSender()

{

IPEndPoint multicastIep = new IPEndPoint(multicastIP, multicastPort);

multicastUDP.EnableBroadcast = true;

string info = string.Format(\" xxxxxxxxxxxxxxxxxxxxxxxxx\");

byte[] bInfo = Encoding.UTF8.GetBytes(info);

multicastUDP.Send(bInfo, bInfo.Length, multicastIep);

}

}

}

因篇幅问题不能全部显示,请点此查看更多更全内容