代码示例使用 UdpClient 侦听发送到端口 11,000 上的定向的广播地址 192.168.1.255 的 UDP 数据文报。客户端接收消息字符串并将消息写入控制台。
using System; using System.Net; using System.Net.Sockets; using System.Text; public class UDPListener { private const int listenPort = 11000; private static void StartListener() { bool done = false; UdpClient listener = new UdpClient(listenPort); IPEndPoint groupEP = new IPEndPoint(IPAddress.Any,listenPort); try { while (!done) { Console.WriteLine("Waiting for broadcast"); byte[] bytes = listener.Receive( ref groupEP); Console.WriteLine("Received broadcast from {0} :\n {1}\n", groupEP.ToString(), Encoding.ASCII.GetString(bytes,0,bytes.Length)); } } catch (Exception e) { Console.WriteLine(e.ToString()); } finally { listener.Close(); } } public static int Main() { StartListener(); return 0; } }下面的代码示例使用 UdpClient 将 UDP 数据文报发送到使用端口 11,000 的定向广播地址 192.168.1.255。客户端发送命令行上指定的消息字符串。
using System; using System.Net; using System.Net.Sockets; using System.Text; class Program { static void Main(string[] args) { Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); IPAddress broadcast = IPAddress.Parse("192.168.1.255"); byte[] sendbuf = Encoding.ASCII.GetBytes(args[0]); IPEndPoint ep = new IPEndPoint(broadcast, 11000); s.SendTo(sendbuf, ep); Console.WriteLine("Message sent to the broadcast address"); } }