在System.net.Sockets名称空间中,UdpClient类简化了UDP套接字编程。UDP协议是无连接的协议,因此,UDP协议只有UdpClient类,而没有TcpListener类和TcpClient类。UdpClient类提供了发送和接受无连接的UDP数据报的方便方法。其建立默认远程主机的方式有两种:一是使用远程主机名和端口号作为参数创建UdpClient类的实例;另一种是先创建不带参数的UdpClient类的实例,然后调用Connet方法指定默认远程主机。
可以通过调用UdpClient对象的Send方法直接将数据发送到远程主机,该方法返回数据的长度可用于检查数据是否已被正确发送。UdpClient对象的Receive方法能够在指定的本地IP地址和端口上接收数据,该方法带一个引用类型的IPEndPoint实例,并将接收到的数据作为byte数组返回
UDP协议的重要用途是可以通过广播和组播实现一对多的通信。所谓广播,就是指同时向网络中的所有计算机发送消息,而这些计算机都可以接收到消息。组播也叫多路广播,是将消息从一台计算机发送到网络中指定的若干台计算机上,即发送到哪些加入指定组播组的计算机上,组播组是开放的,每台计算机都可以通过程序随时加入到组播组中,也可以随时退出。
组播地址是224.0.0.0到239.255.255.255的D类IP地址。使用组播时,应注意的是TTL值的设置,TTL值是允许路由器转发的最大数目。当达到这个最大值时,数据包就会被丢弃。如果使用默认值(1),则只能在同一子网内部发送。
在UdpClient类中,调用JoinMulticastGroup方法可将UdpClient对象和TTL一起加入组播组,调用DropMulticastGroup方法可退出组播组。
编写一个程序,利用组播技术向子网